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

R语言如何使用rename_with()替换指定后缀重命名数据框列

R数据框列名精准后缀替换方案

rename_with()完全可以实现该需求,之前操作失效的核心原因是没有做精准的后缀匹配:做字符串替换时需要用正则的结尾锚定符$,确保只替换列名最末尾的_10p,避免误匹配其他位置的相同字符。

基于dplyr::rename_with()的实现

library(dplyr)

# 示例测试数据
eat10.18 <- data.frame(id = c(1000, 1001, 1002),
                       eat_10 = c(2, 4, 1),
                       eat_10p = c(1, 2, 3),
                       run_10p = c(1, 1, 2)) 

# 执行重命名
eat10.18_renamed <- eat10.18 |> 
  rename_with(
    # 替换规则:仅替换字符串末尾的_10p为_p_10
    .fn = ~ sub("_10p$", "_p_10", .x),
    # 双重筛选:仅操作以_10p结尾的列,避免误改
    .cols = ends_with("_10p")
  )

执行后查看列名验证结果:

colnames(eat10.18_renamed)
# [1] "id"       "eat_10"   "eat_p_10" "run_p_10"

id、eat_10列名保持原样,eat_10p、run_10p正确替换为目标名称,符合要求。

基础R实现(无第三方包依赖)

如果不想加载dplyr,直接操作列名属性即可实现相同效果:

eat10.18_renamed <- eat10.18
colnames(eat10.18_renamed) <- sub("_10p$", "_p_10", colnames(eat10.18_renamed))

内容的提问来源于stack exchange,提问作者Blair Burnette

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:01:10