使用[]子集data.table列

时间:2015-05-04 18:51:31

标签: r data.table subset

这很奇怪。当我尝试通过

选择data.table上的列时
df1[, 30]

它只给了我30,或者我放在那里的任何数字。不是第30栏。

此处的数据:https://github.com/pourque/country-data/blob/master/data/df1.csv

我已经检查了,当我刚刚进行测试data.frame时,一切正常:

df2 <- data.frame(x = 1:3, y = 3:1, z = 7:9)
> df2[, 2]
[1] 3 2 1

关于可能发生的事情的任何想法?

1 个答案:

答案 0 :(得分:8)

使用data.table时,您需要使用以下内容来按数字选择列:

df2[, 2, with=FALSE]
df2[, .SD, .SDcols=2]

这仍将返回data.table,而不是向量 与列表一样,您也可以使用以下内容返回向量:

df2[[2]]