2017-03-05 60 views
2

我是R和dplyr软件包的新手。我试图通过一个变量dplyr group_by,我们可以改变/更改。 例如与飞行数据集工作时,我可以使用下面的代码按任一列(或多列)获得的行数:如何将多个列名作为输入传递给dplyr中的group_by

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() 

我会很感激任何帮助。谢谢。

回答

7

你已经差不多了,你只需要使用.dots参数来传递你的分组变量。

group <- c("origin","carrier") 

flights %>% 
    group_by_(.dots = group) %>% 
    tally() 
+0

太好了。非常感谢。你能帮我理解一下.dots的论点是做什么的。 –

+0

您使用'.dots'参数进行'dplyr'编程,它使您能够以编程方式将想要执行的操作传递给'dplyr' SE函数。您应该阅读NSE上的dplyr vignette以获取更多信息。 –

+0

感谢您的帮助! –

相关问题