我是R和dplyr包的新手。我正在尝试将变量传递给dplyr group_by ,我们可以更改/更改。 例如,在使用航班数据集时,我可以使用以下代码获取任何列(或多列)的行数:
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()
我将不胜感激任何帮助。感谢。
答案 0 :(得分:12)
你几乎得到它,你只需要使用.dots
参数传递你的分组变量。
group <- c("origin","carrier")
flights %>%
group_by_(.dots = group) %>%
tally()