You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:27:28