我想从使用变量指定列名的data.table
对象中提取列值。例如:
DT <- data.table(x = c(1, 2), y = c(3, 4), z = c(5, 6))
col <- "z"
然后
> is.vector(DT[, col, with = F])
[1] FALSE
因为它会返回一个data.table
对象。
我也尝试过:is.vector(DT[, (col), with = F])
以及:is.vector(DT[, ..col])
具有相同的结果。我尝试了其他产生错误的可能性。
直接使用变量名称:
> is.vector(DT[, z])
[1] TRUE
我找到了这个post,它使用列位置解决了它,但没有通过引用使用名称:
> is.vector(DT[[3]])
[1] TRUE
我在data.table
documentation中没有找到关于此特定案例的明确引用。我确信这是一种简单的方法,但我没有找到。
答案 0 :(得分:2)
我们可以使用[[
将列提取为向量
is.vector(DT[[col]])
#[1] TRUE