3 回答
TA贡献1836条经验 获得超3个赞
对于data.table的 版本>= 1.9.8,以下所有方法均适用:
library(data.table)
dt <- data.table(a = 1, b = 2, c = 3)
# select single column by index
dt[, 2]
# b
# 1: 2
# select multiple columns by index
dt[, 2:3]
# b c
# 1: 2 3
# select single column by name
dt[, "a"]
# a
# 1: 1
# select multiple columns by name
dt[, c("a", "b")]
# a b
# 1: 1 2
对于data.table 版本< 1.9.8(需要使用来选择数字列with = FALSE),请参见此答案的先前版本。另请参阅新闻,v1.9.8中的更改/可能的更改/第2点。
TA贡献1790条经验 获得超9个赞
这有点冗长,但是我已经习惯了使用隐藏.SD变量。
b<-data.table(a=1,b=2,c=3,d=4)
b[,.SD,.SDcols=c(1:2)]
这有点麻烦,但是您不会在其他data.table功能上迷失(我不认为),因此您仍然应该能够使用其他重要功能,例如联接表等。
TA贡献1804条经验 获得超7个赞
如果要使用列名来选择列,只需使用.(),这是别名list():
library(data.table)
dt <- data.table(a = 1:2, b = 2:3, c = 3:4)
dt[ , .(b, c)] # select the columns b and c
# Result:
# b c
# 1: 2 3
# 2: 3 4
添加回答
举报