使用with = TRUE返回向量

时间:2012-12-10 23:47:38

标签: r data.table

我有一个data.table my.data.table和一个字符向量i(长度为1),对应于my.data.table的colname。使用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中的eval(i, <env>)j进行此操作,但我无法理解。

1 个答案:

答案 0 :(得分:6)

其中任何一个都适用于您的示例,但两者中的第二个通常更有用。

my.data.table[[i]]
# [1] 1 2
my.data.table[,i,with=FALSE][[1]]
# [1] 1 2