通过引用从data.table中提取列作为向量

时间:2017-05-20 18:12:20

标签: r data.table

我想从使用变量指定列名的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中没有找到关于此特定案例的明确引用。我确信这是一种简单的方法,但我没有找到。

1 个答案:

答案 0 :(得分:2)

我们可以使用[[将列提取为向量

is.vector(DT[[col]])
#[1] TRUE