Группировка по всем возможным комбинациям нескольких переменных с dplyr

Учитывая ситуацию, такую ​​как следующее

library(dplyr)
myData <- tbl_df(data.frame( var1 = rnorm(100), 
                             var2 = letters[1:3] %>%
                                    sample(100, replace = TRUE) %>%
                                    factor(), 
                             var3 = LETTERS[1:3] %>%
                                    sample(100, replace = TRUE) %>%
                                    factor(), 
                             var4 = month.abb[1:3] %>%
                                    sample(100, replace = TRUE) %>%
                                    factor()))

Я хотел бы сгруппировать myData, чтобы в итоге найти группировку сводных данных по всем возможным комбинациям var2, var3 и var4.

Я могу создать список со всеми возможными комбинациями переменных как символьные значения с

groupNames <- names(myData)[2:4]

myGroups <- Map(combn, 
              list(groupNames), 
              seq_along(groupNames),
              simplify = FALSE) %>%
              unlist(recursive = FALSE)

Я планировал сделать отдельные наборы данных для каждой комбинации переменных с циклом for (), что-то вроде

### This Does Not Work
for (i in 1:length(myGroups)){
     assign( myGroups[i]%>%
             unlist() %>%
             paste0(collapse = "")%>%
             paste0("Data"), 
               myData %>% 
               group_by_(lapply(myGroups[[i]], as.symbol)) %>%
               summarise( n = length(var1), 
                             avgVar2 = var2 %>%
                                       mean()))
}

По общему признанию я не очень хорош со списками, и поиск этой проблемы был немного сложным, так как обновления dpyr изменили, как группировка работает немного.

Если есть лучший способ сделать это, чем отдельные наборы данных, я хотел бы знать.

Я получил цикл, аналогичный описанному выше, когда я группирую только по одной переменной.

Любая помощь очень ценится! Спасибо!

Ответы на вопрос(0)

Ваш ответ на вопрос