apply(), lapply(), sapply(), tapply() Funktion in R mit Beispielen (2024)

Ziel dieses Tutorials ist es, die Funktionssammlung apply() vorzustellen. Die Funktion apply() ist die grundlegendste aller Sammlungen. Wir werden auch sapply(), lapply() und tapply() lernen. Die Apply-Sammlung kann als Ersatz für die Schleife betrachtet werden.

Die apply()-Sammlung ist im Lieferumfang enthalten r wesentlich Paket, wenn Sie Installieren Sie R mit Anaconda. Die Funktion „Anwenden in R“ kann mit vielen Funktionen gespeist werden, um eine redundante Anwendung auf eine Sammlung von Objekten (Datenrahmen, Liste, Vektor usw.) durchzuführen. Der Zweck von apply() ist Primarium die explizite Verwendung von Schleifenkonstrukten zu vermeiden. Sie können für eine Eingabeliste, eine Matrix oder ein Array verwendet werden und eine Funktion anwenden. An apply() kann jede Funktion übergeben werden.

apply()-Funktion

anwenden() Nimmt einen Datenrahmen oder eine Matrix als Eingabe und gibt die Ausgabe als Vektor, Liste oder Array aus. Anwenden Funktion in R ist primariWird hauptsächlich verwendet, um die explizite Verwendung von Schleifenkonstrukten zu vermeiden. Es ist die grundlegendste aller Sammlungen, die über Matrizen verwendet werden können.

Diese Funktion benötigt 3 Argumente:

apply(X, MARGIN, FUN)Here:-x: an array or matrix-MARGIN: take a value or range between 1 and 2 to define where to apply the function:-MARGIN=1`: the manipulation is performed on rows-MARGIN=2`: the manipulation is performed on columns-MARGIN=c(1,2)` the manipulation is performed on rows and columns-FUN: tells which function to apply. Built functions like mean, median, sum, min, max and even user-defined functions can be applied>

Das einfachste Beispiel ist die Summierung einer Matrize über alle Spalten. Der Code apply(m1, 2, sum) wendet die Summenfunktion auf die Matrix 5×6 an und gibt die Summe jeder im Datensatz zugänglichen Spalte zurück.

m1 <- matrix(C<-(1:10),nrow=5, ncol=6)m1a_m1 <- apply(m1, 2, sum)a_m1

Ausgang:

Best Practice: Speichern Sie die Werte, bevor Sie sie auf der Konsole drucken.

lapply()-Funktion

lapply() Funktion ist nützlich für die Ausführung operaFunktionen für Listenobjekte und gibt ein Listenobjekt mit der gleichen Länge wie der ursprüngliche Satz zurück. lappy() gibt eine Liste ähnlicher Länge wie das Eingabelistenobjekt zurück, wobei jedes Element das Ergebnis der Anwendung von FUN auf das entsprechende Element der Liste ist. Lapply in R nimmt eine Liste, einen Vektor oder einen Datenrahmen als Eingabe und gibt die Ausgabe in einer Liste aus.

lapply(X, FUN)Arguments:-X: A vector or an object-FUN: Function applied to each element of x

l in lapply() steht für Liste. Der Unterschied zwischen lapply() und apply() liegt in der Ausgaberückgabe. Die Ausgabe von lapply() ist eine Liste. lapply() kann für andere Objekte wie Datenrahmen und Listen verwendet werden.

Die Funktion lapply() benötigt keinen MARGIN.

Ein sehr einfaches Beispiel kann darin bestehen, den Zeichenfolgenwert einer Matrix mit der Funktion tolower in Kleinbuchstaben zu ändern. Wir erstellen eine Matrix mit den Namen der berühmten Filme. Der Name wird in Großbuchstaben geschrieben.

movies <- c("SPYDERMAN","BATMAN","VERTIGO","CHINATOWN")movies_lower <-lapply(movies, tolower)str(movies_lower)

Ausgang:

## List of 4## $:chr"spyderman"## $:chr"batman"## $:chr"vertigo"## $:chr"chinatown"

Wir können unlist() verwenden, um die Liste in einen Vektor umzuwandeln.

movies_lower <-unlist(lapply(movies,tolower))str(movies_lower)

Ausgang:

## chr [1:4] "spyderman" "batman" "vertigo" "chinatown"

sapply()-Funktion

sapply() Die Funktion verwendet eine Liste, einen Vektor oder einen Datenrahmen als Eingabe und gibt die Ausgabe als Vektor oder aus Matrix. Es ist nützlich für operaFunktionen für Listenobjekte und gibt ein Listenobjekt mit der gleichen Länge wie der ursprüngliche Satz zurück. Die Sapply-Funktion in R erledigt die gleiche Aufgabe wie die Funktion lapply(), gibt jedoch einen Vektor zurück.

sapply(X, FUN)Arguments:-X: A vector or an object-FUN: Function applied to each element of x

Aus dem Fahrzeugdatensatz können wir die Mindestgeschwindigkeit und den Bremsweg von Fahrzeugen messen.

dt <- carslmn_cars <- lapply(dt, min)smn_cars <- sapply(dt, min)lmn_cars

Ausgang:

## $speed## [1] 4## $dist## [1] 2
smn_cars

Ausgang:

## speed dist ## 4 2
lmxcars <- lapply(dt, max)smxcars <- sapply(dt, max)lmxcars

Ausgang:

## $speed## [1] 25## $dist## [1] 120
smxcars

Ausgang:

## speed dist ## 25 120

Wir können eine vom Benutzer integrierte Funktion in lapply() oder sapply() verwenden. Wir erstellen eine Funktion mit dem Namen avg um den Durchschnitt des Minimums und Maximums des Vektors zu berechnen.

avg <- function(x) { ( min(x) + max(x) ) / 2}fcars <- sapply(dt, avg)fcars

Output

## speed dist## 14.5 61.0

Sapply in R ist in der zurückgegebenen Ausgabe effizienter als lapply(), da sapply() Werte direkt in einem Vektor speichert. Im nächsten Beispiel werden wir sehen, dass dies nicht immer der Fall ist.

Wir können zusammenfassenmariErfahren Sie im Folgenden den Unterschied zwischen apply(), sapply() und `lapply()wing Tabelle:

FunktionArgumenteZielzufuhrOutput
sich bewerbenapply(x, MARGIN, FUN)Wenden Sie eine Funktion auf die Zeilen, Spalten oder beides anDatenrahmen oder MatrixVektor, Liste, Array
lappiglapply(X, FUN)Wenden Sie eine Funktion auf alle Elemente der Eingabe anListe, Vektor oder DatenrahmenListe
sapplesapply(X, FUN)Wenden Sie eine Funktion auf alle Elemente der Eingabe anListe, Vektor oder DatenrahmenVektor oder Matrix

Slice-Vektor

Wir können lapply() oder sapply() austauschbar verwenden, um einen Datenrahmen zu segmentieren. Wir erstellen eine Funktion, Below_average(), die einen Vektor numerischer Werte nimmt und einen Vektor zurückgibt, der nur die Werte enthält, die deutlich über dem Durchschnitt liegen. Wir vergleichen beide Ergebnisse mit der Funktion identisch().

below_ave <- function(x) { ave <- mean(x) return(x[x > ave])}dt_s<- sapply(dt, below_ave)dt_l<- lapply(dt, below_ave)identical(dt_s, dt_l)

Ausgang:

## [1] TRUE

tapply()-Funktion

tapply() berechnet ein Maß (Mittelwert, Median, Minimum, Maximum usw.) oder eine Funktion für jede Faktorvariable in einem Vektor. Es handelt sich um eine sehr nützliche Funktion, mit der Sie eine Teilmenge eines Vektors erstellen und dann einige Funktionen auf jede Teilmenge anwenden können.

tapply(X, INDEX, FUN = NULL)Arguments:-X: An object, usually a vector-INDEX: A list containing factor-FUN: Function applied to each element of x

Ein Teil der Aufgabe eines Datenwissenschaftlers oder -forschers besteht darin, Summen zu berechnenmaries von Variablen. Messen Sie beispielsweise den Durchschnitt oder gruppieren Sie Daten basierend auf einem Merkmal. Die meisten Daten sind nach ID, Stadt, Ländern usw. gruppiert. SummemariWenn man über die Gruppe schaut, werden weitere interessante Muster sichtbar.

Um zu verstehen, wie es funktioniert, verwenden wir den Iris-Datensatz. Dieser Datensatz ist in der Welt des maschinellen Lernens sehr bekannt. Der Zweck dieses Datensatzes besteht darin, die Klasse jeder der drei Blumenarten vorherzusagen: Sepal, Versicolor, Virginica. Der Datensatz sammelt für jede Art Informationen über ihre Länge und Breite.

Als Vorarbeit können wir den Median der Länge für jede Art berechnen. Tapply in R ist eine schnelle Möglichkeit, diese Berechnung durchzuführen.

data(iris)tapply(iris$Sepal.Width, iris$Species, median)

Ausgang:

## setosa versicolor virginica ## 3.4 2.8 3.0

Du magst vielleicht:

  • R-Tutorial für Anfänger: Lernen Sie die Programmiersprache R
  • Faktor in R: Kategoriale Variable und kontinuierliche Variablen
  • R-Datenrahmen: Erstellen, Anhängen, Auswählen und Teilmengen
  • Daten in R importieren: CSV-, Excel-, SPSS-, Stata- und SAS-Dateien lesen
  • Entscheidungsbaum in R: Klassifizierungsbaum mit Beispiel
  • R-Programmier-Tutorial PDF für Anfänger (Jetzt herunterladen)
apply(), lapply(), sapply(), tapply() Funktion in R mit Beispielen (2024)

FAQs

What is the use of Lapply and Sapply in R? ›

Difference between lapply() and sapply() functions:

lapply() function displays the output as a list whereas sapply() function displays the output as a vector. lapply() and sapply() functions are used to perform some operations in a list of objects.

What is the use of apply() in R? ›

apply() lets you perform a function across a data frame's rows or columns. In the arguments, you specify what you want as follows: apply(X = data. frame, MARGIN = 1, FUN = function.

What does the Tapply function do in R? ›

It is important to realise that tapply calculates the mean (or any other function) for subsets of observations of a variable, whereas lapply and sapply calculate the mean (or any other function) of one or more variables, using all observations. The word FUN stands for function, and must be written in capitals.

What does applying Lapply function on a matrix returns ________? ›

lapply returns a list of the same length as X , each element of which is the result of applying FUN to the corresponding element of X . sapply is a user-friendly version and wrapper of lapply by default returning a vector, matrix or, if simplify = "array" , an array if appropriate, by applying simplify2array() .

What is Sapply used for? ›

The sapply function

Applies a function to elements in a list and returns the results in a vector, matrix or a list.

How to apply function in calculation? ›

the apply function looks like this: apply(X, MARGIN, FUN).
  1. X is an array or matrix (this is the data that you will be performing the function on)
  2. Margin specifies whether you want to apply the function across rows (1) or columns (2)
  3. FUN is the function you want to use.

What is the apply () function? ›

The apply() method is one of the most common methods of data preprocessing. It simplifies applying a function on each element in a pandas Series and each row or column in a pandas DataFrame.

What does tapply return? ›

If FUN is NULL , tapply returns a vector which can be used to subscript the multi-way array tapply normally produces. optional arguments to FUN : the Note section. (only in the case of simplification to an array) the value with which the array is initialized as array(default, dim = ..) .

What is the difference between Tapply and aggregate in R? ›

aggregate is designed to work on multiple columns with one function and returns a dataframe with one row for each category, while tapply is designed to work on a single vector with results returned as a matrix or array.

What package is tapply in R? ›

tapply,Vector,ANY-method in the IRanges package for an example of a specific tapply method (defined for Vector objects). BiocGenerics for a summary of all the generics defined in the BiocGenerics package.

What is the syntax of Tapply? ›

The basic syntax for tapply() is as follows: tapply(data, INDEX, FUN, ...) data : The vector or array you want to summarize. INDEX : A list of factors or grouping variables used to split the data.

What is the Lapply function to a list in R? ›

lapply() function in R Programming Language is used to apply a function over a list of elements. lapply() function is used with a list and performs the following operations: lapply(List, length): Returns the length of objects present in the list, List.

What is the difference between Sapply and Lapply in R? ›

The sapply() function is a simplified form of lapply() ("s" in the function name stands for "simplified"). It has the same syntax as lapply() (i.e., sapply(X, FUN) ); takes in a vector, a list, or a DataFrame as input, just as lapply() does, and tries to reduce the output object to the most simplified data structure.

How to use apply function in matrix in R? ›

Apply function to each column of matrix in R
  1. X: Name of the matrix or data frame.
  2. MARGIN: Dimension to operate across. Use 1 for row, 2 for column.
  3. FUN: The function to apply.
Apr 12, 2024

What is the output of Lapply in R? ›

The lapply() function in the R Language takes a list, vector, or data frame as input and gives output in the form of a list object. Since the lapply() function applies a certain operation to all the elements of the list it doesn't need a MARGIN. Parameters: x: determines the input vector or an object.

What is the difference between Sapply and Vapply? ›

Vector output: sapply and vapply

sapply() and vapply() are very similar to lapply() except they simplify their output to produce an atomic vector. While sapply() guesses, vapply() takes an additional argument specifying the output type.

What is the purpose of the which () function in R? ›

The which() function in R returns the position or the index of the value which satisfies the given condition. The Which() function in R gives you the position of the value in a logical vector. The position can be of anything like rows, columns and even vector as well.

What is %>% in R? ›

R pipes are a way to chain multiple operations together in a concise and expressive way. They are represented by the %>% operator, which takes the output of the expression on its left and passes it as the first argument to the function on its right. Using pipes in R allows us to link a sequence of analysis steps.

References

Top Articles
Latest Posts
Article information

Author: Arline Emard IV

Last Updated:

Views: 6369

Rating: 4.1 / 5 (52 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Arline Emard IV

Birthday: 1996-07-10

Address: 8912 Hintz Shore, West Louie, AZ 69363-0747

Phone: +13454700762376

Job: Administration Technician

Hobby: Paintball, Horseback riding, Cycling, Running, Macrame, Playing musical instruments, Soapmaking

Introduction: My name is Arline Emard IV, I am a cheerful, gorgeous, colorful, joyous, excited, super, inquisitive person who loves writing and wants to share my knowledge and understanding with you.