2015-12-28 19 views
5

Pracuję z R błyszczącym dla jakiejś eksploracyjnej analizy danych. Mam dwa pola wyboru, w jednym polu wyboru zapełniam wszystkie zmienne kategoryczne, a pozostałe to zmienne numeryczne. Następnie stosuję groupby na tych dwóch selekcji w następujący sposób.grupa dplyr na wielu kolumnach

var1 <- input$variable1  # Checkbox with categorical variables 
var2 <- input$variable2  # Checkbox with numerical variables 

v$data <- dataset %>% 
    group_by_(var1) %>% 
    summarize_(Sum = interp(~sum(x), x = as.name(var2))) %>% 
    arrange(desc(Sum)) 

Co działa idealnie dobrze, gdy grupa jest tylko na 1 kolumnie, ale chcę grupować na więcej niż jednej kolumnie. Gdy użytkownik wybierze więcej niż jedną zmienną kategoryczną, zwróci mi tablicę z nazwami kolumn. Jak przekazać to w dplyr groupby.

+0

Mam 11 zmiennych kategorycznych gdy użytkownik wybierze powiedzmy 3 zmienne kategoryczne daje mi '[1] "" "dish_type dish_name" [3] "user_location_grp"' 'var1' w jaki sposób mogę przekazać tę tablicę do groupby. – Neil

Odpowiedz

14

Jeśli masz wektor nazw zmiennych, powinieneś przekazać je do parametru .dots= z group_by_. Na przykład:

mtcars %>% 
    group_by_(.dots=c("mpg","hp","wt")) %>% 
    summarize(x=mean(gear)) 
+0

To działało również za pomocą 'group_by'. – BLT

Powiązane problemy