更改前缀的dplyr :: mutate_at?

时间:2017-12-04 12:45:54

标签: r

我有一个带有三个变量的数据框(df),其中两个变量前缀为abc,另一个变量前缀为def。

我想使用 dplyr()来更改以abc开头的变量的前缀,以便它们具有前缀new。

我当前代码无法正常工作的问题,我不明白为什么。

谢谢!

起点(df):

df <- data.frame(abc_question1_F1_Q1=c(1,2,1,2),abc_question_F1_Q2=c(1,2,1,2),def_question1_F1_Q3=c(1,2,1,2))

期望的结果(dfgoal):

df <- data.frame(new_question1_F1_Q1=c(1,2,1,2),new_question_F1_Q2=c(1,2,1,2),def_question1_F1_Q3=c(1,2,1,2))

当前代码:

library(dplyr)
df <- df %>% mutate_at(vars(contains("abc_")), function(x){gsub("abc_", "new_", x)})

1 个答案:

答案 0 :(得分:2)

如果我们需要使用dplyr

df %>% 
   rename_all(funs(sub("^abc", "new", .)))

base R

names(df) <- sub("^abc", "new", names(df))