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

3

我可以使用数字向量如c(1:5,27:30)选择数据表中的多个列范围。是否有一种方法可以使用列名来完成相同的操作?例如,以类似于col1:col5,col27:col30的形式。


您可以通过提供一个示例来简化回答。 col1:col5 语法可以出现在几个地方,我不知道您指的是哪一个。 - Frank
data.table[,col1:col5] -- 如果有帮助,这是我所指的唯一上下文 - AlexR
使用 dplyr 库中的 select(df, col1:col5, col27:col30) 可以完成此任务。 - user2110417
2个回答

2
你可以使用 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

我不确定我的答案是否高效,但我认为这至少可以给你一个解决方法,以防你需要使用 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而不是f。在这种情况下,可以使用以下方法:
multColSelectedByName<- cbind(df[,a:c],f=df[,f])

这是我一直在使用的临时解决方案,但还是谢谢你的建议。 - AlexR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接