以编程方式在变量变量上调用group_by()

Ari*_*man 6 group-by r split-apply-combine dplyr

使用dplyr,我想通过一个我可以改变的变量来总结[sic](例如在循环或apply-style命令中).

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

library(dplyr)
ChickWeight %>% group_by( Chick, Diet ) %>% summarise( mw = mean( weight ) )
Run Code Online (Sandbox Code Playgroud)

但是group_by并没有写一个字符向量,所以传递结果更难.

v <- "Diet"
ChickWeight %>% group_by( c( "Chick", v ) ) %>% summarise( mw = mean( weight ) )
## Error
Run Code Online (Sandbox Code Playgroud)

我会发布一个解决方案,但很想知道其他人如何解决这个问题.

Nic*_*icE 11

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

ChickWeight %>% group_by_( "Chick", v )  %>% summarise( mw = mean( weight ) )
Run Code Online (Sandbox Code Playgroud)

dplyr 0.3新功能:

您现在可以使用dplyr进行编程 - 使用非标准评估(NSE)的每个函数也都有一个标准评估(SE)结尾_.例如,过滤器()的SE版本称为filter _().每个函数的SE版本都有类似的参数,但必须明确地"引用"它们.