为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

如何在中使用其数字索引(位置)的向量选择多列data.table?这就是我们如何处理data.frame:df <- data.frame(a = 1, b = 2, c = 3)df[ , 2:3]#   b c# 1 2 3
查看完整描述

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点。


查看完整回答
反对 回复 2019-10-16
?
富国沪深

TA贡献1790条经验 获得超9个赞

这有点冗长,但是我已经习惯了使用隐藏.SD变量。


b<-data.table(a=1,b=2,c=3,d=4)

b[,.SD,.SDcols=c(1:2)]

这有点麻烦,但是您不会在其他data.table功能上迷失(我不认为),因此您仍然应该能够使用其他重要功能,例如联接表等。


查看完整回答
反对 回复 2019-10-16
?
三国纷争

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


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 444 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信