Я хочу создать функцию, которая принимает аргумент группировки. Это может быть одна или несколько переменных. Я хочу, чтобы это выглядело так:
wanted <- function(data, groups, other_params){
data %>% group_by( {{groups}} ) %>% count()
}
Это работает, только когда дана одна группа, но прерывается, когда есть несколько групп. Я знаю, что с многоточием ...
можно использовать следующее (но мне нужен синтаксис groups = something
):
not_wanted <- function(data, ..., other_params){
data %>% group_by( ... ) %>% count()
}
Вот весь код:
library(dplyr)
library(magrittr)
iris$group2 <- rep(1:5, 30)
wanted <- function(data, groups, other_params){
data %>% group_by( {{groups}} ) %>% count()
}
not_wanted <- function(data, ..., other_params){
data %>% group_by( ... ) %>% count()
}
# works
wanted(iris, groups = Species )
not_wanted(iris, Species, group2)
# doesn't work
wanted(iris, groups = vars(Species, group2) )
wanted(iris, groups = c(Species, group2) )
wanted(iris, groups = vars("Species", "group2") )
# Error: Column `vars(Species, group2)` must be length 150 (the number of rows) or one, not 2
group
, вектора символовlength >= 1
? также, почему бы не сделать группировку вcount()
call - person Benjamin Schwetz   schedule 06.01.2020{{...}}
на!!!
- тогда вызов с использованиемvars(Species, group2)
будет работать - см. dplyr.tidyverse.org/articles/ - person cwthom   schedule 06.01.2020