使用[]子集data.table列

Ans*_*ica 0 r subset data.table

这很奇怪.当我尝试选择我的列data.table

df1[, 30]
Run Code Online (Sandbox Code Playgroud)

它只给了我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
Run Code Online (Sandbox Code Playgroud)

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

jan*_*cki 8

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

df2[, 2, with=FALSE]
df2[, .SD, .SDcols=2]
Run Code Online (Sandbox Code Playgroud)

这仍然会返回data.table,而不是vector.
像往常一样,你也可以使用下面的方法来返回一个向量:

df2[[2]]
Run Code Online (Sandbox Code Playgroud)