【发布时间】:2015-03-04 02:26:20
【问题描述】:
在 Stata 中,如果我有这些变量:var1、var2、var3、var4、var5 和 var6,我可以使用命令 var* 选择所有这些变量。 R 有类似的功能吗?
【问题讨论】:
-
严格来说
var*不是命令,而是使用特殊字符或通配符的varlist(变量名列表)。
在 Stata 中,如果我有这些变量:var1、var2、var3、var4、var5 和 var6,我可以使用命令 var* 选择所有这些变量。 R 有类似的功能吗?
【问题讨论】:
var*不是命令,而是使用特殊字符或通配符的varlist(变量名列表)。
“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
【讨论】:
你可以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 提供。
【讨论】:
"^var*" 来确保 varname 以 "var" 开头。试试grep("var*",c("revarnish"))
*。啊,评论消失了,但是:"^var"就足够了;无需以* 结束。