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
添加回答
舉報