我有一个data.table my.data.table和一个字符向量i(长度为1)对应于一个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
>
Run Code Online (Sandbox Code Playgroud)
我假设有一种方法可以使用with=FALSE和进行eval(i, <env>),j但我无法弄明白.
这些中的任何一个都可以在您的示例中使用,但两者中的第二个通常更有用.
my.data.table[[i]]
# [1] 1 2
my.data.table[,..i][[1L]]
# [1] 1 2
Run Code Online (Sandbox Code Playgroud)