通过其数字索引选择data.table中的多个列

如何在中使用其数字索引(位置)的向量选择多列data.table?


这就是我们如何处理data.frame:


df <- data.frame(a = 1, b = 2, c = 3)

df[ , 2:3]

#   b c

# 1 2 3


摇曳的蔷薇
浏览 453回答 3
3回答

米脂

对于data.table的 版本>= 1.9.8,以下所有方法均适用:library(data.table)dt <- data.table(a = 1, b = 2, c = 3)# select single column by indexdt[, 2]#&nbsp; &nbsp; b# 1: 2# select multiple columns by indexdt[, 2:3]#&nbsp; &nbsp; b c# 1: 2 3# select single column by namedt[, "a"]#&nbsp; &nbsp; a# 1: 1# select multiple columns by namedt[, c("a", "b")]#&nbsp; &nbsp; a b# 1: 1 2对于data.table 版本< 1.9.8(需要使用来选择数字列with = FALSE),请参见此答案的先前版本。另请参阅新闻,v1.9.8中的更改/可能的更改/第2点。

富国沪深

这有点冗长,但是我已经习惯了使用隐藏.SD变量。b<-data.table(a=1,b=2,c=3,d=4)b[,.SD,.SDcols=c(1:2)]这有点麻烦,但是您不会在其他data.table功能上迷失(我不认为),因此您仍然应该能够使用其他重要功能,例如联接表等。

三国纷争

如果要使用列名来选择列,只需使用.(),这是别名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:#&nbsp; &nbsp; b c# 1: 2 3# 2: 3 4
打开App,查看更多内容
随时随地看视频慕课网APP