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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用列名列表从数据表中选择匹配的列[重复]。相关的知识,希望对你有一定的参考价值。

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

但这行不通

答案

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

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

以上是关于使用列名列表从数据表中选择匹配的列[重复]。的主要内容,如果未能解决你的问题,请参考以下文章

从两个表中选择不匹配的列值

在python中过滤与列表值匹配的列值的数据框[重复]

PHP / MYSQL - 返回变量匹配数据点的列名[重复]

如果字符串数组中的列名在字符串数组中具有匹配的值,则获取DataRow

有啥方法可以扩展包含列表的 pandas Dataframe 中的列并从列表值本身中获取列名?

Pandas:如何获取除与给定列表匹配的列名之外的列名[重复]