In R gibt es verschiedene Gruppierungsfunktionen, die es ermöglichen, Daten nach bestimmten Kriterien zu gruppieren und dann Berechnungen auf diesen Gruppen durchzuführen. Die wichtigsten Gruppierungsfunktionen sind tapply
, by
und aggregate
. Zusätzlich gibt es die *apply Familie von Funktionen, die Operationen auf Datenstrukturen wie Vektoren, Matrizen und Listen anwenden.
1. tapply
tapply
ist eine Funktion, die es ermöglicht, eine Funktion auf Gruppen von Daten anzuwenden. Die Syntax ist:
tapply(X, INDEX, FUN, ...)
X
: Ein Vektor oder ein Objekt, das in einen Vektor umgewandelt werden kann.INDEX
: Eine Liste von Faktoren, die die Gruppen definieren.FUN
: Die Funktion, die auf jede Gruppe angewendet werden soll....
: Weitere optionale Argumente, die anFUN
übergeben werden können.
2. by
Die by
Funktion ist ähnlich wie tapply
, aber sie kann auf Dataframes angewendet werden. Die Syntax ist:
by(data, INDICES, FUN, ...)
data
: Ein Dataframe oder eine Liste.INDICES
: Eine Liste von Faktoren, die die Gruppen definieren.FUN
: Die Funktion, die auf jede Gruppe angewendet werden soll....
: Weitere optionale Argumente, die anFUN
übergeben werden können.
3. aggregate
Die aggregate
Funktion ist eine weitere Möglichkeit, Daten in R zu gruppieren und Funktionen auf diese Gruppen anzuwenden. Die Syntax ist:
aggregate(x, by, FUN, ...)
x
: Ein Dataframe oder eine Matrix.by
: Eine Liste von Faktoren, die die Gruppen definieren.FUN
: Die Funktion, die auf jede Gruppe angewendet werden soll....
: Weitere optionale Argumente, die anFUN
übergeben werden können.
Die *apply Familie
Die *apply Familie von Funktionen in R umfasst:
apply
: Wende eine Funktion auf die Zeilen oder Spalten einer Matrix oder eines Dataframes an.
apply(X, MARGIN, FUN, ...)
lapply
: Wende eine Funktion auf jedes Element einer Liste oder eines Vektors an und gib eine Liste zurück.
lapply(X, FUN, ...)
sapply
: Wende eine Funktion auf jedes Element einer Liste oder eines Vektors an und gib einen Vektor oder eine Matrix zurück.
sapply(X, FUN, ..., simplify = TRUE)
mapply
: Wende eine Funktion auf mehrere Vektoren oder Listen an und gib einen Vektor oder eine Matrix zurück.
mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE)
rapply
: Wende eine Funktion rekursiv auf eine Liste oder einen Vektor an und gib einen Vektor zurück.
rapply(object, f, classes, how, ...)
vapply
: Wende eine Funktion auf jedes Element einer Liste oder eines Vektors an und gib einen Vektor, eine Matrix oder ein Array mit einer vordefinierten Ausgabe zurück.
vapply(X, FUN, FUN.VALUE, ..., USE.NAMES = TRUE)