使用列名称在data.table中选择多个列范围

时间:2017-07-22 22:17:55

标签: r data.table

我可以使用c(1:5,27:30)之类的数字向量在data.table中选择多个列范围。有没有办法对列名做同样的事情?例如,某种形式类似于col1:col5,col27:col30

2 个答案:

答案 0 :(得分:1)

您可以使用dplyr

df <- data.frame(a=1, b=2, c=3, d=4, e=5, f=6, g=7)
dplyr::select(df, a:c, f:g)

a b c f g
1 2 3 6 7

答案 1 :(得分:0)

我不确定我的答案是否有效,但我认为至少在您需要使用data.table的情况下,这可以为您提供解决方法。 我的建议是将data.tablecbind结合使用。因此你可以:

df <- data.frame(a=1, b=2, c=3, d=4, e=5, f=6, g=7)
multColSelectedByName<- cbind(df[,a:c],df[,f:g])
#a b c f g
#1: 1 2 3 6 7

应该注意的一点是,如果其中一个选项中只有一列,例如df[,f],那么此列的名称将类似于V2而不是{{ 1}}。在这种情况下,可以使用:
f