在R语言中如何给数据框的列名末尾添加指定文本字符串?
R语言为数据框列名批量添加后缀的实现方法
以下两种是最常用的实现方案,均可以实现保留User_ID列名不变,将A-E列名末尾添加text后缀的需求:
方法1:基础R实现(无需加载第三方包)
直接操作列名字符向量完成拼接,有两种常用写法:
- 写法1:明确指定要修改的目标列
# 定义要修改的列集合 target_cols <- c("A", "B", "C", "D", "E") # 匹配列名后拼接后缀 colnames(df)[colnames(df) %in% target_cols] <- paste0(target_cols, "text")
- 写法2:按列位置排除不需要修改的列(适合目标列范围规整的场景)
# 排除第一列User_ID,剩余列全部添加后缀 colnames(df)[-1] <- paste0(colnames(df)[-1], "text")
注意:必须使用paste0做无分隔符拼接,若使用paste会默认添加空格,不符合需求
方法2:dplyr包实现(适合tidyverse生态用户)
使用rename_with函数可以更灵活的匹配列、批量修改列名:
library(dplyr) df <- df %>% # 排除User_ID列,其余列全部添加text后缀 rename_with(.fn = ~ paste0(.x, "text"), .cols = -User_ID)
修改完成后可运行colnames(df)验证结果,输出如下:
[1] "User_ID" "Atext" "Btext" "Ctext" "Dtext" "Etext"
内容的提问来源于stack exchange,提问作者aspark2020
相关产品推荐
相关产品推荐

