Я хотел бы создать функцию, которая будет создавать таблицу со счетчиками на основе одной или нескольких группирующих переменных. Я нашел это сообщение Использование dplyr group_by в функции, которая работает, если я передать функции одно имя переменной
library(dplyr)
l <- c("a", "b", "c", "e", "f", "g")
animal <- c("dog", "cat", "dog", "dog", "cat", "fish")
sex <- c("m", "f", "f", "m", "f", "unknown")
n <- rep(1, length(animal))
theTibble <- tibble(l, animal, sex, n)
countString <- function(things) {
theTibble %>% group_by(!! enquo(things)) %>% count()
}
countString(animal)
countString(sex)
Это прекрасно работает, но я не знаю, как передать функции две переменные. Такого рода работы:
countString(paste(animal, sex))
Это дает мне правильные подсчеты, но возвращенная таблица сворачивает переменные животного и пола в одну переменную.
# A tibble: 4 x 2
# Groups: paste(animal, sex) [4]
`paste(animal, sex)` nn
<chr> <int>
1 cat f 2
2 dog f 1
3 dog m 2
4 fish unknown 1
Каков синтаксис передачи в функцию двух слов, разделенных запятыми? Я хочу получить такой результат:
# A tibble: 4 x 3
# Groups: animal, sex [4]
animal sex nn
<chr> <chr> <int>
1 cat f 2
2 dog f 1
3 dog m 2
4 fish unknown 1