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

在R语言中使用dplyr::rename_all精确匹配team.开头列重命名的方法

解决方案

要实现仅替换**列名开头为team.(字面量,包含点号)**的列名,需要修正正则表达式,避免.作为通配符匹配任意字符。具体实现如下:

  1. 正则规则调整:使用^team\\.作为匹配条件

    • ^:锚定字符串开头,确保只匹配列名最起始的部分
    • team\\.:用\\.转义点号,匹配字面量的team.,而非正则中默认的任意单个字符
  2. 结合dplyr的rename_with(rename_all已被弃用)完成重命名:

library(dplyr)

# 创建目标数据框
zed = data.frame(teamAbb = c('A', 'B'), team.abb = c('C', 'D'))

# 精确匹配重命名
zed %>% 
  rename_with(~ sub("^team\\.", "", .x))

运行后输出结果:

teamAbb abb
1       A   C
2       B   D

补充说明

  • 用sub代替gsub更高效,因为我们只需要替换开头的一次匹配,sub仅处理第一个匹配项
  • 原代码中gsub('team.', '', .)的问题在于:正则里.会匹配任意单个字符,导致teamAbb中的teamA被误判为team.(.匹配A),最终列名被错误修改为bb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:24:04