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

如何在R函数中用mutate()创建值为指定变量名的动态变量?

解决方案

要让Indicator变量取传入参数var_1的变量名,你可以用rlang包的as_label()函数替代原来的label(),它能把enquo()捕获的表达式转换成变量名字符串。

修改后的函数如下:

library(dplyr)
library(rlang)

fn <- function(data, var_1) {
  
  var_1 <- enquo(var_1)
  
  prop <- data %>%
    mutate(Indicator = as_label(var_1))
  
  return(prop)
}

测试示例

用mtcars数据集测试:

test_result <- fn(mtcars, mpg)
head(test_result$Indicator)

输出会是重复的"mpg",也就是传入的变量名。

如果你的R环境里rlang版本稍旧,也可以用quo_name(var_1),效果一致,但as_label()是更推荐的新版本用法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:32:06