表型數據清洗
1. 生成數據
library(data.table)
test = data.frame(ID = paste0("A",1:1000),y = rnorm(1000))
sampleid = data.frame(ID = paste0("A",sample(1:100,10)))
2. 使用setkey
setDT(test)
str(test)
setkey(test,ID)
3. 根據sampleid進行索引
test[sampleid$ID]
報錯:
> test[sampleid$ID]
Error in `[.data.table`(test, sampleid$ID) :
i has not evaluated to logical, integer or double
因爲sampleid的ID是因子,轉化爲character即可。
> sampleid$ID = as.character(sampleid$ID)
> test[sampleid$ID]
ID y
1: A17 0.3824981
2: A85 -0.2304567
3: A9 -0.5068925
4: A4 0.7707640
5: A67 -0.1763860
6: A75 -0.6596452
7: A19 0.2936062
8: A26 1.5178032
9: A93 -0.4725069