如何在data.table中使用某些列名的字符向量选择列?[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在data.table中使用某些列名的字符向量选择列?[重复]相关的知识,希望对你有一定的参考价值。
我试图选择data.table中那些名字出现在我的字符向量中的列。这个操作在纯data.frame中可以工作,但在data.table中就不行了。这里有一个可重现的例子。
> names(mtcars)
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
[11] "carb"
> myVector <- c('disp', 'hp', 'wt')
> head(mtcars[, myVector])
disp hp wt
Mazda RX4 160 110 2.620
Mazda RX4 Wag 160 110 2.875
Datsun 710 108 93 2.320
Hornet 4 Drive 258 110 3.215
Hornet Sportabout 360 175 3.440
Valiant 225 105 3.460
我刚刚做了一个向量,其中包括 disp
, hp
和 wt
并且我使用该向量选择了我的data.frame中相应的列。现在让我们从我的data.frame中制作一个data.table对象,并尝试做同样的操作。
> library(data.table)
> mtcarsDT <- data.table(mtcars)
> mtcarsDT[, myVector]
[1] "disp" "hp" "wt"
答案
我们可以使用 ..
记数法 myVector
作为列位置的向量,就像它在 data.frame
mtcarsDT[, ..myVector]
根据 ?data.table
如果在数据集中和父范围内的变量名有重叠,可以使用双点前缀。
..cols
明确地引用'cols变量的父作用域,而不是来自你的数据集。
以上是关于如何在data.table中使用某些列名的字符向量选择列?[重复]的主要内容,如果未能解决你的问题,请参考以下文章
当列名包含空格和特殊字符时从 data.table 包中读取?