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

如何在R的dplyr自定义函数中让grouped_by列显示变量名

问题解决:让grouped_by列显示分组变量名称而非取值

现有代码运行后,grouped_by列输出的是分组变量的具体取值(如setosa),但需求是让该列显示变量名称(如Species)。

修改后的代码

library(dplyr)

grouped_mean_and_label <- function(var){
  iris%>%
    group_by({{ var }})%>%
    summarize(Sepal.Length = mean(Sepal.Length))%>%
    mutate(grouped_by = rlang::as_name(rlang::ensym(var)))
}

grouped_mean_and_label(Species)

运行结果

# A tibble: 3 × 3
  Species    Sepal.Length grouped_by
  <fct>             <dbl> <chr>     
1 setosa             5.01 Species   
2 versicolor         5.94 Species   
3 virginica          6.59 Species   

说明

  • 使用rlang::ensym(var)将传入的符号参数转换为符号对象,再通过rlang::as_name()将其转为字符串,即可获取变量名称而非取值。
  • 也可以用as.character(substitute(var))替代,效果一致,前者更贴合tidyverse生态的语法风格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:24:18