Я пишу функцию, в которой пользователю предлагается определить одну или несколько переменных группировки в вызове функции. Затем данные группируются с использованием dplyr и работают, как ожидалось, если есть только одна переменная группировки, но я не понял, как это сделать с несколькими переменными группировки.
Пример:
x <- c("cyl")
y <- c("cyl", "gear")
dots <- list(~cyl, ~gear)
library(dplyr)
library(lazyeval)
mtcars %>% group_by_(x) # groups by cyl
mtcars %>% group_by_(y) # groups only by cyl (not gear)
mtcars %>% group_by_(.dots = dots) # groups by cyl and gear, this is what I want.
Я попытался превратить y
в то же самое, что и dots
, используя:
mtcars %>% group_by_(.dots = interp(~var, var = list(y)))
#Error: is.call(expr) || is.name(expr) || is.atomic(expr) is not TRUE
Как использовать пользовательскую строку ввода из > 1 имен переменных (например, y
в примере) для группировки данных с помощью dplyr?
(Этот вопрос каким-то образом связан с этим, но не ответил там.)