Select 使用列名列表匹配数据 table 中的列

Select matching columns from a data table using a list of column names

我有一个 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')

但是,table 可能包含所有列。

如何提取 data.table 中的所有行,以及与 col.list 中的行相匹配的所有现有列?我在想一些事情:

dat[,.(col.list)] 

但是没用。

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

..data.table 发出信号,让其查看父框架(即 dat 所在的环境),而不是 dat 本身。