2016-08-04 17 views
-4

Ich habe Datenstruktur (Datenrahmen), die 3 Spalte, Alter (ganze Zahl), Gewicht (float) und Höhe (float) enthält, möchte ich Durchschnitt und Median Gewicht/Höhe in jedem Alter zu berechnen Gruppe (zB mittleres Gewicht/Größe im Alter von 10, durchschnittliches Gewicht/Größe im Alter von 11, durchschnittliches Gewicht/Größe im Alter von 12, etc.). Fragen Sie sich, ob es Referenzcode-Beispiele gibt?Gruppe nach Durchschnitt in R

Zur Zeit mache ich Group-by gleich Funktion außerhalb von R mit Python numpy/Pandas-Paket. Wenn es eine eingebaute R-Lösung für Gruppen gibt, wird es großartig.

Grüßen, Lin

+2

die Dokumentation für die 'by' See und' tapply' Funktionen in Basis R. Wenn Sie ein Paket suchen, [dplyr] (https://cran.rstudio.com/web/ Pakete/dplyr/vignettes/Einführung.html) ist ein beliebtes Paket für diese Art von Operation. –

+0

@WeihuangWong, Abstimmung und danke! –

+0

@DavidArenburg, danke für die Erinnerung. Ich werde posten, was ich das nächste Mal recherchiert habe, wenn ich eine Frage stelle. –

Antwort

3

Wir dplyr

library(dplyr) 
df1 %>% 
    group_by(age) %>% 
    summarise_each(funs(mean)) 

Oder mit data.table

library(data.table) 
setDT(df1)[, lapply(.SD, mean), by = age] 

Odermit verwendenvon base R

aggregate(.~age, df1, mean) 
+1

@DavidArenburg THe Op ist ein Neuling in R und wusste nicht über die Gruppe nach Funktionen. – akrun

+1

@DavidArenburg Basierend auf der Beschreibung, war ich nicht ganz sicher über das erwartete. Also habe ich einige Optionen zur Verfügung gestellt. – akrun

+0

Ich liebe akruns Kommentare und antworten. R Dokument ist manchmal verwirrend. Antwort von akrun ist viel klarer. –

Verwandte Themen