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

R语言用正则去除列名括号外字符并按映射表重命名列

R数据框列名处理实现方案

以下实现全部基于R基础函数,无需安装额外依赖包。

步骤1:提取括号内内容生成df1

# 保留第一列名不变,剩余列名仅保留括号内的数字内容
colnames(df)[-1] <- sub(pattern = ".*\\((\\d+)\\).*", replacement = "\\1", x = colnames(df)[-1])
df1 <- df

核心逻辑:通过正则匹配列名中(数字)格式的片段,仅捕获括号内的数字替换原列名,第一列CCLE_ID保持不变,得到的df1和你提供的期望输出完全一致。

步骤2:根据映射表替换列名

# 按照df2的oldname和newname对应关系替换df1的列名
colnames(df1) <- df2$newname[match(colnames(df1), df2$oldname)]

核心逻辑:用match函数匹配df1当前列名和df2的oldname字段,直接映射到对应newname,匹配逻辑和列顺序无关,不会出现错位问题。

验证结果

执行上述代码后,打印df1的列名可看到最终效果:

print(colnames(df1))
# 输出结果:
#  [1] "CCLE_ID" "ESN"     "PSA"     "TGI"     "PICJ"    "TMNS"    "IUJE"    "UED"     "PUQD"    "STGW"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:54:01