I, innerhalb eines group_by
Anruf, dplyr der Spaltenwähler wie starts_with()
, ends_with()
, matches()
, ..., oder auch die Syntax -colName
verwenden möchten.komplexe Spaltenauswahl in dplyr group_by
(Dumme) Beispiel für die Syntax ich nach bin:
library("dplyr")
# I would like to do something like this
mtcars %>%
group_by(matches("a")) %>%
summarise(mpg=mean(mpg))
# but I get a "wrong result size" error
ich hatte gehofft, funktionieren würde, analog zu:
mtcars %>% select(matches("a"))
die hier würde wählen Spalten drat, am, gear, carb
Um kristallklar zu sein: Ich möchte matches("a")
(oder gleichwertig) verwenden, um dieselbe Ausgabe wie zu erhalten:
mtcars %>%
group_by(drat, am, gear, carb) %>%
summarise(mpg=mean(mpg))
Ich bin nur an Antworten mit dplyr interessiert. Vielen Dank!
Die aktuelle Antwort, obwohl gut, erlaubt nur die Auswahl von Spalten mit einem Regex.
Ich bin immer noch auf der Suche nach einer globaleren Antwort, die die Verwendung der gesamten Auswahl von dplyr Auswahlsyntax erlauben würde. Natürlich kann ich jeden Regex massieren, um zu wählen, was ich will, aber ich wünschte, ich hätte etwas, das sich besser in dplyr integriert (vor allem, um die Syntax -colName
zu verwenden). Ich werde das für eine Weile offen lassen.
Sie können Vermeiden Sie den Doppelaufruf zu den Namen mit 'grep (" a ", Namen (mtcars), val = TRUE)' –
@PierreLafortune Richtig. Vergiss es. – Psidom
Vielen Dank an beide, ich füge dies meinen praktischen Funktionen hinzu! 'group_at <- Funktion (df, Muster) group_by_ (df, .dots = grep (Namen (df), Muster = Muster, Wert = T))' –