使用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/