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

如何去除R语言DataFrame列名中下划线后的所有字符

处理R语言DataFrame列名:移除下划线后的字符

先还原你的示例数据,方便测试:

# 构造示例DataFrame
df <- data.frame(
  Ax_ghx = c(1, 3),
  By_jkgf = c(2, 4),
  YTz8_hjks = c(3, 5),
  gh3_hjhd = c(4, 6),
  row.names = c("a", "b")
)

下面提供两种简洁的实现方法:

方法一:Base R 原生实现

用sub()函数通过正则匹配,直接替换列名:

colnames(df) <- sub("_.*", "", colnames(df))

这里_.*是正则表达式,匹配下划线_及之后的所有字符,sub()会把匹配到的部分替换为空,只保留下划线前的内容。

方法二:tidyverse 工具包实现

如果习惯用tidyverse语法,用rename_with()结合字符串处理函数完成:

library(dplyr)
library(stringr)

df <- df %>% 
  rename_with(~ str_remove(., "_.*"))

rename_with()用于批量修改列名,str_remove()同样通过正则匹配移除下划线及之后的内容。

执行任意一种方法后,DataFrame的列名就会变为Ax、By、YTz8、gh3,与预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:35:39