logo

apply(), lapply(), sapply() und tapply() in R

In diesem Artikel lernen wir die Funktionen apply(), lapply(), sapply() und tapply() im kennen Programmiersprache R.

Die apply()-Sammlung ist Teil des R-Essential-Pakets. Diese Funktionsfamilie hilft uns, eine bestimmte Funktion auf einen bestimmten Datenrahmen, eine bestimmte Liste oder einen bestimmten Vektor anzuwenden und das Ergebnis je nach verwendeter Funktion als Liste oder Vektor zurückzugeben. In der Funktionsfamilie apply() gibt es die folgenden vier Funktionstypen:



apply()-Funktion

Mit der Funktion apply() können wir eine Funktion auf die Zeilen oder Spalten einer Matrix oder eines Datenrahmens anwenden. Diese Funktion verwendet eine Matrix oder einen Datenrahmen als Argument zusammen mit der Funktion und ob sie zeilen- oder spaltenweise angewendet werden muss und gibt das Ergebnis in Form eines Vektors, Arrays oder einer Liste der erhaltenen Werte zurück.

Syntax: apply( x, margin, function )

Parameter:



    x: bestimmt das Eingabearray inklusive Matrix. Rand: Wenn der Rand 1 beträgt, wird die Funktion auf die gesamte Zeile angewendet, wenn der Rand 2 beträgt, wird sie auf die gesamte Spalte angewendet. Funktion: Bestimmt die Funktion, die auf Eingabedaten angewendet werden soll.

Beispiel:

Hier ist ein einfaches Beispiel, das die Verwendung der Funktion apply() sowohl in Zeilen als auch in Spalten zeigt.

R






# create sample data> sample_matrix <->matrix>(C<-(1:10),nrow=3, ncol=10)> > print>(>'sample matrix:'>)> sample_matrix> > # Use apply() function across row to find sum> print>(>'sum across rows:'>)> apply>( sample_matrix, 1, sum)> > # use apply() function across column to find mean> print>(>'mean across columns:'>)> apply>( sample_matrix, 2, mean)>

>

>

Ausgabe:

lapply()-Funktion

Die Funktion lapply() hilft uns bei der Anwendung von Funktionen auf Listenobjekte und gibt ein Listenobjekt derselben Länge zurück. Die Funktion lapply() in der R-Sprache verwendet eine Liste, einen Vektor oder einen Datenrahmen als Eingabe und gibt die Ausgabe in Form eines Listenobjekts aus. Da die Funktion lapply() eine bestimmte Operation auf alle Elemente der Liste anwendet, ist kein MARGIN erforderlich.

Syntax: lapply( x, Spaß )

Parameter:

    x: Bestimmt den Eingabevektor oder ein Objekt. Spaß: Bestimmt die Funktion, die auf Eingabedaten angewendet werden soll.

Beispiel:

Hier ist ein einfaches Beispiel, das die Verwendung der Funktion lapply() für einen Vektor zeigt.

R




# create sample data> names <->c>(>'priyank'>,>'abhiraj'>,>'pawananjani'>,> >'sudhanshu'>,>'devraj'>)> print>(>'original data:'>)> names> > # apply lapply() function> print>(>'data after lapply():'>)> lapply>(names, toupper)>

char zu string
>

>

Ausgabe:

sapply()-Funktion

Die Funktion sapply() hilft uns beim Anwenden von Funktionen auf eine Liste, einen Vektor oder einen Datenrahmen und gibt ein Array- oder Matrixobjekt derselben Länge zurück. Die Funktion sapply() in der R-Sprache verwendet eine Liste, einen Vektor oder einen Datenrahmen als Eingabe und gibt die Ausgabe in Form eines Array- oder Matrixobjekts aus. Da die Funktion sapply() eine bestimmte Operation auf alle Elemente des Objekts anwendet, ist kein MARGIN erforderlich. Es ist dasselbe wie lapply(), mit dem einzigen Unterschied, dass es sich um den Typ des Rückgabeobjekts handelt.

Syntax: sapply( x, Spaß )

Parameter:

    x: Bestimmt den Eingabevektor oder ein Objekt. Spaß: Bestimmt die Funktion, die auf Eingabedaten angewendet werden soll.

Beispiel:

Hier ist ein einfaches Beispiel, das die Verwendung der Funktion sapply() für einen Vektor zeigt.

R




# create sample data> sample_data<->data.frame>( x=>c>(1,2,3,4,5,6),> >y=>c>(3,2,4,2,34,5))> print>(>'original data:'>)> sample_data> > # apply sapply() function> print>(>'data after sapply():'>)> sapply>(sample_data, max)>

>

>

Ausgabe:

tapply()-Funktion

Mit tapply() können wir statistische Maße (Mittelwert, Median, Minimum, Maximum usw.) oder eine selbstgeschriebene Funktionsoperation für jede Faktorvariable in einem Vektor berechnen. Es hilft uns, eine Teilmenge eines Vektors zu erstellen und dann einige Funktionen auf jede Teilmenge anzuwenden. Wenn wir beispielsweise in einer Organisation Daten zum Gehalt der Mitarbeiter haben und das Durchschnittsgehalt für Männer und Frauen ermitteln möchten, können wir die Funktion tapply() mit Männern und Frauen als Faktorvariable Geschlecht verwenden.

Syntax: tapply( x, index, fun )

Parameter:

    x: Bestimmt den Eingabevektor oder ein Objekt. Index: Bestimmt den Faktorvektor, der uns bei der Unterscheidung der Daten hilft. Spaß: Bestimmt die Funktion, die auf Eingabedaten angewendet werden soll.

Beispiel:

Hier ist ein einfaches Beispiel, das die Verwendung der tapply()-Funktion für den Diamanten-Datensatz zeigt, der von der Tidyverse-Paketbibliothek bereitgestellt wird.

R




# load library tidyverse> library>(tidyverse)> > # print head of diamonds dataset> print>(>' Head of data:'>)> head>(diamonds)> > # apply tapply function to get average price by cut> print>(>'Average price for each cut of diamond:'>)> tapply>(diamonds$price, diamonds$cut, mean)>

>

>

Ausgabe: