So verwenden sie die across()-funktion in dplyr (3 beispiele)


Sie können die Funktion across() aus dem dplyr- Paket in R verwenden, um eine Transformation auf mehrere Spalten anzuwenden.

Es gibt unzählige Möglichkeiten, diese Funktion zu nutzen, aber die folgenden Methoden veranschaulichen einige häufige Verwendungsmöglichkeiten:

Methode 1: Wenden Sie eine Funktion auf mehrere Spalten an

 #multiply values in col1 and col2 by 2
df %>% 
  mutate(across(c(col1, col2), function (x) x*2))

Methode 2: Berechnen Sie eine zusammenfassende Statistik für mehrere Spalten

 #calculate mean of col1 and col2
df %>%
  summarise(across(c(col1, col2), mean, na. rm = TRUE ))

Methode 3: Berechnen Sie mehrere Zusammenfassungsstatistiken für mehrere Spalten

 #calculate mean and standard deviation for col1 and col2
df %>%
  summarise(across(c(col1, col2), list(mean=mean, sd=sd), na. rm = TRUE ))

Die folgenden Beispiele zeigen, wie jede Methode mit dem folgenden Datenrahmen verwendet wird:

 #create data frame
df <- data. frame (conf=c('East', 'East', 'East', 'West', 'West', 'West'),
                 points=c(22, 25, 29, 13, 22, 30),
                 rebounds=c(12, 10, 6, 6, 8, 11))

#view data frame
df

  conf points rebounds
1 East 22 12
2 East 25 10
3 East 29 6
4 West 13 6
5 West 22 8
6 West 30 11

Beispiel 1: Anwenden einer Funktion auf mehrere Spalten

Der folgende Code zeigt, wie Sie die Funktion across() verwenden, um die Werte in den Spalten „ Points “ und „ Rebounds “ mit 2 zu multiplizieren:

 library (dplyr)

#multiply values in points and rebounds columns by 2
df %>% 
  mutate(across(c(points, rebounds), function (x) x*2))

  conf points rebounds
1 East 44 24
2 East 50 20
3 East 58 12
4 West 26 12
5 West 44 16
6 West 60 22

Beispiel 2: Berechnen Sie eine zusammenfassende Statistik für mehrere Spalten

Der folgende Code zeigt, wie Sie mit der across() -Funktion den Durchschnittswert der Punkte- und Rebounds -Spalten berechnen:

 library (dplyr)

#calculate mean value of points an rebounds columns
df %>%
  summarise(across(c(points, rebounds), mean, na. rm = TRUE ))

  rebound points
1 23.5 8.833333

Beachten Sie, dass wir die Funktion is.numeric auch verwenden können, um automatisch eine zusammenfassende Statistik für alle numerischen Spalten im Datenrahmen zu berechnen:

 library (dplyr)

#calculate mean value for every numeric column in data frame
df %>%
  summarise(across(where(is. numeric ), mean, na. rm = TRUE ))

  rebound points
1 23.5 8.833333

Beispiel 3: Berechnen Sie mehrere zusammenfassende Statistiken für mehrere Spalten

Der folgende Code zeigt, wie Sie mit der across() -Funktion den Durchschnitt und die Standardabweichung der Punkte- und Rebounds -Spalten berechnen:

 library (dplyr)

#calculate mean and standard deviation for points and rebounds columns
df %>%
  summarise(across(c(points, rebounds), list(mean=mean, sd=sd), na. rm = TRUE ))

  points_mean points_sd rebounds_mean rebounds_sd
1 23.5 6.156298 8.833333 2.562551

Hinweis : Die vollständige Dokumentation für die across()- Funktion finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie mit dplyr weitere gängige Funktionen ausführen:

So löschen Sie Zeilen mit dplyr
So ordnen Sie Zeilen mit dplyr an
So filtern Sie mit dplyr nach mehreren Bedingungen

Einen Kommentar hinzufügen

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