Я пытаюсь написать функцию для динамической group_by каждой комбинации вектора символов.
Вот как я настроил свой список:
stuff <- c("type", "country", "color")
stuff_ListStr <- do.call("c", lapply(seq_along(stuff), function(i) combn(stuff, i, FUN = list)))
stuff_ListChar <- sapply(stuff_ListStr, paste, collapse = ", ")
stuff_ListSym <- lapply(stuff_ListChar, as.symbol)
Затем я бросил ее в al oop.
b <- list()
for (each in stuff_ListSym) {
a <- answers_wfh %>%
group_by(!!each) %>%
summarize(n=n())
b <- append(b, a)
}
Итак, по сути, я хочу воспроизвести это
... group_by(type),
... group_by(country),
... group_by(type, country),
... и остальные комбинации. Затем я хочу поместить все резюме в один список (список таблиц / списков)
Это совершенно не работает. Это мое сообщение об ошибке: Error: Column `type, country` is unknown
.
Мало того, b
не дает мне того, что я хочу. Это список длиной 12, когда я ожидал только 2, прежде чем он потерпел неудачу. Один столбик сгруппирован по «типу», а второй - по «стране».
Я новичок в R в целом, но подумал, что аккуратный eval действительно крутой, и хотел попробовать. Здесь есть подсказки?