A: so verwenden sie die funktion apply() für bestimmte spalten


Häufig möchten Sie möglicherweise die Funktion apply() verwenden, um eine Funktion auf bestimmte Spalten in einem Datenrahmen in R anzuwenden.

Allerdings erzwingt die Funktion apply() zunächst, dass alle Spalten in einem Datenrahmen denselben Objekttyp haben, bevor eine Funktion angewendet wird, was manchmal unbeabsichtigte Folgen haben kann.

Eine bessere Wahl ist die Funktion lapply() , die die folgende grundlegende Syntax verwendet:

 df[c(' col1 ', ' col2 ')] <- lapply(df[c(' col1 ', ' col2 ')], my_function)

In diesem speziellen Beispiel wird die Funktion my_function nur auf col1 und col2 im Datenrahmen angewendet.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Wenden Sie eine Funktion auf bestimmte Spalten im Datenrahmen an

Angenommen, wir haben den folgenden Datenrahmen in R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(19, 22, 15, NA, 14, 25, 25, 25),
                 rebounds=c(10, 6, 3, 7, 11, 13, 9, 12),
                 assists=c(4, 4, 3, 6, 7, 5, 10, 8))

#view data frame
df

  team points rebound assists
1 A 19 10 4
2 A 22 6 4
3 to 15 3 3
4 A NA 7 6
5 B 14 11 7
6 B 25 13 5
7 B 25 9 10
8 B 25 12 8

Nehmen wir nun an, wir definieren die folgende Funktion, die die Werte mit 2 multipliziert und dann 1 hinzufügt:

 #define function
my_function <- function (x) x*2 + 1

Wir können die folgende lapply()- Funktion verwenden, um diese Funktion nur auf die Punkte- und Bounce- Spalten im Datenrahmen anzuwenden:

 #apply function to specific columns
df[c(' points ', ' rebounds ')] <- lapply(df[c(' points ', ' rebounds ')], my_function)

#view updated data frame
df

  team points rebound assists
1 A 39 21 4
2 A 45 13 4
3 A 31 7 3
4 A NA 15 6
5 B 29 23 7
6 B 51 27 5
7 B 51 19 10
8 B 51 25 8

Aus dem Ergebnis können wir ersehen, dass wir jeden Wert in den Spalten „Punkte“ und „Rebounds “ mit 2 multiplizieren und dann 1 addieren.

Beachten Sie auch, dass die Spalten für Teams und Assists unverändert geblieben sind.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

Eine Anleitung zu apply(), lapply(), sapply() und tapply() in R
So verwenden Sie die Transformationsfunktion in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert