R相当于Stata *

R equivalent of Stata *

在 Stata 中,如果我有这些变量:var1var2var3var4var5var6 , 我可以 select 使用命令 var* 所有这些。 R 有类似的功能吗?

您可以grep在列名称之间进行这种正则表达式匹配:

x = c(1, 2, 3)
df = data.frame(var1=x, var2=x, var3=x, other=x)
df[, grep("var*", colnames(df))]

输出:

  var1 var2 var3
1    1    1    1
2    2    2    2
3    3    3    3

所以,基本上只是利用通常的 df[rows_to_keep, columns_to_keep] 索引语法,并将 grep 的结果作为 columns_to_keep.

"dplyr" 包中的 select 函数为 select 变量提供了几种灵活的方法。例如,使用@Marius 的示例数据,尝试以下操作:

library(dplyr)
df %>% select(starts_with("var"))        # At the start
df %>% select(num_range("var", 1:3))     # specifying range
df %>% select(num_range("var", c(1, 3))) # gaps are allowed