Hej Leute,

heute stelle ich Euch die supernützliche R-Funktion aggregate vor.

Die Funktion aggregate aggregiert Werte mittels einer frei wählbaren Funktion nach Gruppen. Ok, klingt immer noch kompliziert, ist aber eigentlich ganz simpel. Ich teile einen Datensatz in verschiedene Teilmengen (z.B. Altersklassen) und berechne innerhalb jeder Teilmenge eine Kennzahl (z.B. Mittelwert). Denken wir das Beispiel zu Ende, könnten wir die mittlere Körpergröße nach Altersklasse berechnen

aggregate(Körpergröße ~ Alterklasse, Datensatz, mean)

Wer mit SQL vertraut ist, der kann an group by denken.

Das Konzept ist extrem flexibel, denn erstens können wir beliebige Formeln zur Gruppierung verwenden, zum anderen kann die Aggregat-Funktion völlig frei definiert werden.

Ich verwende den aggregate-Befehl ständig, z.B. wenn ich mehrere Datensätze zu einem Kunden habe und den ersten/letzten/größten/kleinsten/… Wert einer Variable haben möchte.

 

Hier ein paar Beispiele, die die Funktionsweise zeigen:

#Datensatz erzeugen
n=1000
df <- data.frame(id=1:n, Alter=runif(n,0,100), x=rnorm(n))
df$Klasse=ifelse(df$x>0, "positiv", "negativ")
df$Erwachsene = ifelse(df$Alter>=18, "ja", "nein")
 
#einfaches Minimum nach Klasse
aggregate(x ~ Klasse, df, FUN=min)
 
#Anzahl Elemente nach Ausprägungen
aggregate(x ~ Klasse + Erwachsene, df, FUN=length)
 
#eigene Funktion: Mittelwert - 2*Standardabweichung
aggregate(x ~ Klasse + Erwachsene, df, FUN=function(x) {return(mean(x)-2*sd(x))})
 
#Funktion vorher deklarieren: diese muss aus einem Vektor einen Wert aggregieren
myFunc <- function(x) {
  #Berechne die Anzahl Elemente, welche die Zeichenfolge 12 enthalten
  return(sum(grepl("12", x)))
}
aggregate(x ~ Klasse + Erwachsene, df, FUN=myFunc)

Viel Spaß beim Ausprobieren!

 

P.S.: Schaut doch mal bei der Data Science Deutschland Facebookgruppe vorbei.

LERNE DATA SCIENCE mit R

Ein Data Science Experte ist in der heutigen datengetriebenen Welt viel gefragt. Mit der entsprechenden Erfahrung kann man sich den gutbezahlten, interessanten Job aussuchen. In meinem Onlinekurs Data Science mit R lernst Du die Grundlagen.