R语言如何使用rename_with函数删除以_04结尾的变量名后缀
问题解答
完全可以使用rename_with()实现删除列名末尾_04后缀的需求,实现代码如下:
library(dplyr) # 示例数据构造(补充N的定义方便复现) N <- 100 a <- rnorm(N) b <- rnorm(N) c_04 <- rnorm(N) d_04 <- rnorm(N) e_04 <- rnorm(N) df <- data.frame(a, b, c_04, d_04, e_04) # 执行重命名 df <- df %>% rename_with( .fn = ~ sub("_04$", "", .x), .cols = ends_with("_04") )
参数说明
.cols = ends_with("_04"):指定只对变量名以_04结尾的列执行重命名操作,不会修改a、b这类不带目标后缀的列.fn = ~ sub("_04$", "", .x):对选中的列名做字符串替换,正则里的$符号代表匹配字符串末尾,只会删除列名结尾的_04,不会误删列名中间出现的_04片段。这里用sub()即可满足需求,不需要调用全局替换的gsub()。
运行完成后查看列名names(df),得到的结果为[1] "a" "b" "c" "d" "e"。
注:你原示例数据中包含
e_04列,按照规则会被重命名为e,如果不需要修改该列,只需要调整.cols的选择范围即可,例如写成.cols = c(c_04, d_04)就只会重命名c、d对应的两列。
内容的提问来源于stack exchange,提问作者anrisakaki96
相关产品推荐
相关产品推荐

