2016-08-31 7 views
1

Ich versuche zu verwenden, zusammenfassen und gruppieren von aus dplyr in R aber wenn ich eine Variable anstelle der expliziten Aufruf der zusammengefassten Spalte verwendet es die Summe von dist für den gesamten Datensatz für Jede Zeile wird dann richtig gruppiert. Dies kann leicht in dem Unterschied zwischen TestBad und TestGood unten gesehen werden. Ich möchte nur in der Lage sein, die TestGood-Ergebnisse mit der Variable GraphVar wie in TestBad zu replizieren.Verwenden von dplyr zusammenfassen in R mit dynamischen Variablen

Vielen Dank!

+0

Sie benötigen die Standard-Auswertungsfunktionen von dplyr. Sehen Sie ein Beispiel [hier] (http://stackoverflow.com/questions/27975124/pass-arguments-to-dplyr-functions) und die [nse vignette hier] (https://cran.r-project.org/web /packages/dplyr/vignettes/nse.html) – aosmith

+0

@aosmith Sie verwenden bereits Standardauswertung ('group_by_') und haben Probleme damit, denke ich. – Frank

Antwort

3

Sie benötigen die Standardauswertungsfunktion summarise_ zusammen mit lazyeval::interp.

library(lazyeval) 
cars %>% 
    group_by_("speed") %>% 
    summarise_(Sum = interp(~sum(var, na.rm = TRUE), var = as.name(GraphVar)), 
      Count = ~n()) 
Verwandte Themen