r - 以编程方式在变化的变量上调用group_by()

标签 r group-by dplyr split-apply-combine

使用dplyr,我想用一个可以变化的变量来总结[原文](例如,在循环或应用样式的命令中)。

直接输入名称可以正常工作:

library(dplyr)
ChickWeight %>% group_by( Chick, Diet ) %>% summarise( mw = mean( weight ) )

但是group_by并不是为了接受字符向量而编写的,因此传递结果更加困难。
v <- "Diet"
ChickWeight %>% group_by( c( "Chick", v ) ) %>% summarise( mw = mean( weight ) )
## Error

我将发布一种解决方案,但很想知道其他解决方案是如何解决的。

最佳答案

dplyr的下划线功能可能对此有用:

ChickWeight %>% group_by_( "Chick", v )  %>% summarise( mw = mean( weight ) )

new features in dplyr 0.3:

现在,您可以使用dplyr进行编程-每个使用非标准评估(NSE)的函数还具有一个以_结尾的标准评估(SE)对。例如,SE版本的filter()被称为filter _()。每个函数的SE版本都有相似的参数,但是必须明确地用“引号”将它们引出。

关于r - 以编程方式在变化的变量上调用group_by(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28389118/

相关文章:

r - 强制原点从 0 开始,在新的 ggplot 主题中,数据和 x 轴之间没有边距

php - SQL 排序依据、分组依据、具有

MySQL 查找每月的最大日期

r - 基于 dplyr 链中多列的条件评估的变异变量

python - 在 pandas 数据帧上链接方法时,列引用语法看似不一致

regex - R 中的正则表达式,带有负向后视

r - R/LaTeX表创建包的建议

r - 如何使用 dplyr 将行转换为列

sql - 将多行合并为一个

r - 在 R 中向数据框添加缺少的小时数