4

我有一个 data.tablemy.data.table和一个字符向量i(长度为一个)对应于一个 colname my.data.table。使用i,我想将 的对应列提取my.data.table为不属于data.table或类的向量data.frame

我该怎么做?

> my.data.table <- data.table(a=1:2,b=2:3)
> i <- "a"
> class(my.data.table[,i,with=FALSE])
[1] "data.table" "data.frame"
> as.vector(my.data.table[,i,with=FALSE])  ##does not work
   a
1: 1
2: 2
> is.vector(as.vector(my.data.table[,i,with=FALSE])) ##strange behavior
[1] FALSE
> 

with=FALSE我认为有一种方法可以使用and eval(i, <env>)in来做到这一点,j但我无法弄清楚。

4

1 回答 1

6

其中任何一个都可以在您的示例中使用,但两者中的第二个更普遍有用。

my.data.table[[i]]
# [1] 1 2
my.data.table[,..i][[1L]]
# [1] 1 2

..indata.table表示“查找一级”(在本例中为变量i

于 2012-12-10T23:56:13.417 回答