【发布时间】:2015-06-11 08:20:27
【问题描述】:
我想从 data.table 中选择多个列(具有 1200 个列名),按列名指定范围,就像使用 dplyr 可以做的那样,例如:
library(data.table)
library(dplyr)
dt <- data.table(w = sample(100, 50),
x = sample(100, 50),
y = sample(100, 50),
z = sample(100, 50))
select(dt, w:y)
目前我正在使用以下解决方法:
cols_to_select <- names(select(dt, w:y))
dt[ ,cols_to_select, with = FALSE]
我认为使用列号的另一种选择(例如dt[ , 1:3, with = FALSE] 可能会导致讨厌的错误。
选择名称的另一个选项是:
dt[ , .SD, .SDcols = cols_to_select]
如果有下面这样的东西,那就太棒了:
dt[ , .(w:y)]
有没有更好的方法来做到这一点?如果不是为什么?如果这个问题更好地放在 data.table 的 github-issues 中,请告诉我
【问题讨论】:
-
select_vars(names(dt), w:y)可能比names(select(dt, w:y))好 -
为什么?因为你有更多选择?
-
开发版中不是已经有了吗?
-
dt[, w:y, with=FALSE]应该适用于 1.9.5..
标签: r data.table dplyr