如何用dplyr重命名数据框中含指定字符串的列名
使用dplyr批量重命名数据框列名
解决方案
结合dplyr的批量重命名函数和stringr的字符串提取功能,可以快速完成需求:
library(dplyr) library(stringr) # 示例数据框 df <- data.frame(ABC.efg.Basketball_seasonxx = c(0, 3), HIJK.LM.Baseball_season33 = c(5, 9)) # 批量重命名目标列 df_renamed <- df %>% rename_with( # 从列名中提取指定关键词作为新列名 ~ str_extract(., "(Basketball|Baseball)"), # 筛选出包含目标关键词的列 matches("(Basketball|Baseball)") ) # 查看结果 df_renamed
结果验证
运行代码后输出结果如下,完全符合预期:
Basketball Baseball 1 0 5 2 3 9
代码说明
rename_with():dplyr中用于批量处理列名的函数,第一个参数定义重命名规则,第二个参数指定需要处理的列范围str_extract(., "(Basketball|Baseball)"):通过正则匹配,精准提取列名中的目标关键词,作为新的列名matches("(Basketball|Baseball)"):通过正则筛选出所有包含指定关键词的列,确保只处理需要重命名的列
内容的提问来源于stack exchange,提问作者tmxkrdhqj
相关产品推荐
相关产品推荐

