例如的領域,我有一個表如下:(讓我們把它叫做)創建一個新的列,其名字是從表
SNP ID ALLE1 ALLE2
SNPNAME1 1 A A
SNPNAME2 1 A G
SNPNAME3 1 G G
...
我想編寫一個函數來創建一個新表從上面:
ID SNPNAME1 SNPNAME2 SNPNAME3...
1 AA AG GG
...
所以我的想法是先創建一個空對象b,然後我添加了一個新列「ID」來了,我可以做如下:
b$ID=NA
然後我嘗試添加一個新的列,其名稱是從a[1,]$SNP
,我想這個通過了如下聲明:
b$a[1,]$SNP=NA
但是我不能。 然後我試圖使用
b$get(a[1,]$SNP)=NA
或
c=quote(a[1,]$SNP)
b$eval(c)=NA
但上述所有沒有現在的工作。 誰能告訴我如何做到這一點? 謝謝。
我沒有發現名稱是正確的所以也許你會考慮這個小修改:'DT [,setNames(as.list(paste0(ALLE1,ALLE2)),SNP),by = ID]'。也許在4年間data.table處理列表的方式發生了變化,但我認爲'names = SNP'應該是'.Names = SNP',但即使在我的機器上失敗了。 –
@BonddedDust謝謝。 'data.table'必定會有一些變化。下次只需編輯它:) –