【发布时间】:2023-03-07 05:45:01
【问题描述】:
我正在使用 R 中 dplyr 包中的 summarize 函数从表中汇总组均值。我想使用存储在另一个变量中的列名字符串动态地执行此操作。
以下是“正常”的方式,当然可以:
myTibble <- group_by( iris, Species)
summarise( myTibble, avg = mean( Sepal.Length))
# A tibble: 3 x 2
Species avg
<fct> <dbl>
1 setosa 5.01
2 versicolor 5.94
3 virginica 6.59
但是,我想做这样的事情:
myTibble <- group_by( iris, Species)
colOfInterest <- "Sepal.Length"
summarise( myTibble, avg = mean( colOfInterest))
我已经阅读了Programming with dplyr 页面,并尝试了quo、enquo、!!、.dots=(...) 等的一系列组合,但我还没有弄清楚正确的方法。
我也知道this answer,但是,1) 当我使用标准评估函数standardise_ 时,R 告诉我它已被贬值,并且 2) 答案似乎一点也不优雅。那么,有没有一种好的、简单的方法来做到这一点?
谢谢!
【问题讨论】: