使用列名列表从数据表中选择匹配的列

时间:2015-09-02 16:19:20

标签: r data.table

我有一个包含55993行和2923列的data.table,子集如下所示:

            Name Description GTEX-N7MS-0007-SM-2D7W1 GTEX-N7MS-0008-SM-4E3JI GTEX-N7MS-0011-R10A-SM-2HMJK
 ENSG00000223972     DDX11L1                       0                       0                            0
 ENSG00000227232      WASH7P                     158                     166                          209
 ENSG00000243485  MIR1302-11                       0                       0                            4
 ENSG00000237613     FAM138A                       0                       0                            0
 ENSG00000268020      OR4G4P                       0                       0                            0
 ENSG00000240361     OR4G11P                       0                       0                            0

“名称”列是唯一的,因此可以用作键:

setkey(dat,Name)

我有一个175列的列表,我要提取,例如像这样:

col.list <- c('GTEX-N7MS-0011-R10A-SM-2HMJK','GTEX-N7MS-0008-SM-4E3JI','GTEX-N7MS-0826-SM-2AXU2')

但是,该表可能包含所有列。

如何从data.table中提取所有行,所有现有列都与col.list中的列匹配?我正在考虑以下几点:

dat[,.(col.list)] 

但它不起作用。

1 个答案:

答案 0 :(得分:2)

尝试dat[, col.list, with=FALSE]