2014-06-06 12 views
5

I einen Datenrahmen aufweisen, die durch 3 Zeichenvariablenzusammenzufassen alle numerischen Spalten von Datenrahmen von Gruppe in R

catvars <- c("DATE", "COUNTRY_FULL_NAME", "TENOR") 

Der Rest des Datenrahmens besteht aus 20 numerischen Variablen (Kondensieren definiert eindeutige Gruppen hat von Gruppe

für eine einzelne Variable unter 3 in der Probe)

numvars <- c("X1", "Y1, "Z1") 

ich für jede numerische Variable berechnet einen neuen Datenrahmen mit dem Mittelwert zu schaffen versuche ich ddply vom plyr Paket kann verwendet werden:

DFsum <- ddply(DF, catvars, summarize, X1mean = mean(X, na.rm=TRUE)) 

Aber ich kann nicht herausfinden, wie dieser ddply Befehl zu ändern, dass alle numerischen Variablen enthalten. Irgendwelche Vorschläge? Danke

Antwort

6

Ich denke, dass Sie nach numcolwise suchen?

ddply(diamonds,.(cut),numcolwise(mean,na.rm = TRUE)) 
     cut  carat depth table price  x  y  z 
1  Fair 1.0461366 64.04168 59.05379 4358.758 6.246894 6.182652 3.982770 
2  Good 0.8491847 62.36588 58.69464 3928.864 5.838785 5.850744 3.639507 
3 Very Good 0.8063814 61.81828 57.95615 3981.760 5.740696 5.770026 3.559801 
4 Premium 0.8919549 61.26467 58.74610 4584.258 5.973887 5.944879 3.647124 
5  Ideal 0.7028370 61.70940 55.95167 3457.542 5.507451 5.520080 3.401448 
+0

Vielen Dank - das hat funktioniert. Gibt es eine Möglichkeit, die numerischen Variablen anzugeben, die ich aufnehmen möchte? – ec0n0micus

+0

@ ec0n0micus Siehe '? Colwise' und das' .cols' Argument; aber auf diese Weise müssen Sie die Spalten entweder manuell angeben oder eine eigene Funktion schreiben, um jeden für die Aufnahme zu testen. – joran

Verwandte Themen