【发布时间】:2016-02-24 16:21:35
【问题描述】:
一个数据框有以下变量:
names(df1)
"var1_a" "var1_b" "var2_a" "var2_b" "var3_a" "var4_a"
我正在使用 dplyr 删除变量,如下所示 - 一次一个变量:
df2 <- df1 %>% select(-starts_with(("var1"), everything()))
df2 <- df2 %>% select(-starts_with(("var2"), everything()))
使用“dplyr”,有没有办法将两条线连接成一条线?
【问题讨论】:
-
尝试使用正则表达式,比如
df2 <- df1 %>% select(-matches("^(var1|var2)"))也许? -
不知道你是否坚持使用
dplyr::select解决方案;在基础 R 中,df1[,!grepl("^var[12]",names(df1))]工作正常... -
@DavidArenburg: 或
select(-matches("^var[12]")) -
@Ben,是的,
matches只是一个grep包装器,请参阅getAnywhere("matches")(我指的是您的第一条评论) -
@DavidArenburg,你应该发表你的评论作为答案......