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

如何为应用left函数后的新列自动添加_left后缀?

解决方案

要实现自动生成带_left后缀的新列,无需手动修改列名,推荐使用dplyr 1.0.0+版本引入的across()函数(mutate_at()已软弃用),通过.names参数自动拼接后缀:

修改后的完整代码

study <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
bd_acct <- c(57,66,72,24,76,98,56,32,43,250000,87,34,0,0,67)
cc <- c(1,2,3,5,74,3,5,6,5,3,5,6,7,4,1)
trial_A <- data.frame(study, bd_acct,cc) 

left <- function(x, na.rm = FALSE) (quantile(x,0.25) - 1.5*IQR(x))

# 自动生成带_left后缀的新列
trial_A <- trial_A %>% 
  mutate(across(c("bd_acct", "cc"), left, .names = "{col}_left"))

关键说明

  • across()的.names参数支持占位符:{col}会自动替换为当前处理的原列名,加上_left就生成了目标列名
  • 运行后,原数据框的study、bd_acct、cc列会保留,同时新增bd_acct_left和cc_left两列

旧语法兼容方案(若需使用mutate_at)

如果仍习惯用mutate_at(),可以通过命名列表的方式自动添加后缀:

trial_A <- trial_A %>% 
  mutate_at(vars("bd_acct", "cc"), list(left = left))

这里列表的名字left会作为后缀,生成对应新列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:32:43