使用列名列表从数据表中选择匹配的列[重复]。

问题描述 投票:0回答:1

我有一个data.table,有55993行,2923列,一个子集是这样的。

            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)] 

但这行不通

r data.table
1个回答
2
投票

试用 dat[, ..col.list] .

.. 讯号 data.table 在父框架中寻找(即在 dat 所在)而不是在 dat 本身。

© www.soinside.com 2019 - 2024. All rights reserved.