我刚开始接触R和dplyr包。我想将一个变量传递给dplyr的group_by函数,这个变量可以改变。
例如,当使用flights数据集时,我可以使用以下代码通过任何列(或多个列)获取行数:
library(nycflights13)
flights %>% group_by(origin) %>% tally()
flights %>% group_by(carrier) %>% tally()
flights %>% group_by(origin,carrier) %>% tally()
但是如果我想将使用的列名作为变量传递给 group_by,那么在使用多个列名时就无法正常工作。
group="carrier"
flights %>% group_by_(group) %>% tally()
group="origin"
flights %>% group_by_(group) %>% tally()
group=c("origin","carrier") #This does not work
flights %>% group_by_(group) %>% tally()
我会感激任何帮助。谢谢。
dplyr
进行编程时,您可以使用.dots
参数,它使您能够以编程方式将要执行的操作传递到dplyr
SE函数中。您应该阅读有关NSE的dplyr
文档以获取更多信息。 - Jake Kauppgroup_by()
的.dots
参数已被弃用。相反,您可以使用大型银行操作符!!!
,例如group_by(!!!groups)
。 - ESELIA