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

R语言SUM数据集DR01至DR07列批量重命名为DRxx_DRxx_PV格式的方法

实现方案

你可以用dplyr内置的rename_with()函数批量匹配目标列完成重命名,操作非常简便,代码如下:

# 方法1:生成SUM数据集后批量重命名
library(dplyr)
library(stringr)

SUM <- SUM %>%
  rename_with(
    # 定义重命名规则:原列名_原列名_PV
    .fn = ~ paste0(.x, "_", .x, "_PV"),
    # 精准匹配DR01到DR07的列,避免误改其他列
    .cols = matches("^DR0[1-7]$")
  )

如果你希望在生成SUM的过程中一步完成命名,不需要后续额外处理,可以修改最后的pivot_wider步骤,通过names_glue参数直接指定命名规则:

# 方法2:生成SUM时直接设置目标列名
SUM <- df %>%
  pivot_longer(-c(date2:Week)) %>%
  left_join(PV %>% rename_with( ~str_remove(., "_PV")) %>% 
              pivot_longer(-Week, values_to = "PV")) %>%
  mutate(new_value = value + PV) %>%
  select(-c(value:PV)) %>%
  pivot_wider(
    names_from = name, 
    values_from = new_value,
    # 仅对DR01-DR07应用特殊命名规则,其余列保持原名
    names_glue = if_else(str_detect(name, "^DR0[1-7]$"), paste0(name, "_", name, "_PV"), name)
  )

两种方法运行后,SUM数据集的DR01到DR07列都会自动更新为你需要的DR01_DR01_PV、DR02_DR02_PV格式,其他列(date2、Week、D1)保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:09:03