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

如何用dplyr批量重命名变量:将特定后缀替换为_1/_2/_3?

使用dplyr批量重命名变量

你需要批量将数据集中所有以_Baseline、_FollowUp、_Exit结尾的变量后缀,替换为_1、_2、_3,无需逐个手动重命名。

原始数据

ID   Satisfaction_Baseline   Satisfaction_FollowUp   Satisfaction_Exit
1               1                      3                     4
2               5                      5                     5
3               5                      3                     4
4               5                      3                     2
5               5                      3                     5           

目标数据

ID   Satisfaction_1         Satisfaction_2        Satisfaction_3
1               1                      3                     4
2               5                      5                     5
3               5                      3                     4
4               5                      3                     2
5               5                      3                     5  

你已尝试单个变量重命名:

rename(D_wide,  Satisfaction_1 = Satisfaction_Baseline)

解决方案

方法1:全局批量替换

利用dplyr的rename_with()结合stringr的str_replace_all(),通过定义替换规则一次性完成所有匹配变量的重命名:

library(dplyr)
library(stringr)

# 定义后缀替换规则
replace_rules <- c(
  "_Baseline" = "_1",
  "_FollowUp" = "_2",
  "_Exit" = "_3"
)

# 执行批量重命名
D_wide_renamed <- D_wide %>%
  rename_with(~ str_replace_all(., replace_rules))

这个方法会自动扫描所有变量名,匹配到目标后缀就替换,不管有多少个同类型变量都能处理。

方法2:仅重命名特定前缀的变量

如果只想修改以Satisfaction_开头的变量,避免误改其他带相同后缀的变量,可以添加筛选条件:

D_wide_renamed <- D_wide %>%
  rename_with(
    ~ str_replace_all(., replace_rules),
    starts_with("Satisfaction_") # 仅处理符合前缀的变量
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:25:02