R等价的Stata *

时间:2015-03-04 02:26:21

标签: r stata

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

2 个答案:

答案 0 :(得分:10)

“dplyr”包中的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

答案 1 :(得分:5)

您可以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