我有一个带有三个变量的数据框(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)})
答案 0 :(得分:2)
如果我们需要使用dplyr
df %>%
rename_all(funs(sub("^abc", "new", .)))
或base R
names(df) <- sub("^abc", "new", names(df))