So wenden sie mit dplyr eine funktion auf jede zeile an


Sie können die folgende grundlegende Syntax verwenden, um mithilfe von dplyr-Funktionen eine Funktion auf jede Zeile eines Datenrahmens in R anzuwenden:

 df %>%
  rowwise() %>% 
  mutate(mean_value = mean(c(col1, col2, col3), na. rm = TRUE ))

In diesem speziellen Beispiel wird der Durchschnittswert von col1 , col2 und col3 für jede Zeile im Datenrahmen berechnet. Sie können die Funktion Mean() jedoch durch eine beliebige Funktion ersetzen, für die Sie eine andere Metrik berechnen möchten.

Die folgenden Beispiele zeigen, wie diese Syntax in der Praxis mit dem folgenden Datenrahmen verwendet wird, der Informationen über die von verschiedenen Basketballspielern in verschiedenen Spielen erzielten Punkte enthält:

 #create data frame
df <- data. frame (game1=c(22, 25, 29, 13, 22, 30),
                 game2=c(12, 10, 6, 6, 8, 11),
                 game3=c(NA, 15, 15, 18, 22, 13))

#view data frame
df

  game1 game2 game3
1 22 12 NA
2 25 10 15
3 29 6 15
4 13 6 18
5 22 8 22
6 30 11 13

Beispiel 1: Durchschnitt bestimmter Spalten in jeder Zeile

Der folgende Code zeigt, wie der Durchschnittswert der Spalten game1 und game3 für jede Zeile im Datenrahmen berechnet wird:

 library (dplyr)

#calculate mean of game1 and game3
df %>%
  rowwise() %>% 
  mutate(mean_points = mean(c(game1, game3), na. rm = TRUE ))

# A tibble: 6 x 4
#Rowwise: 
  game1 game2 game3 mean_points
           
1 22 12 NA 22  
2 25 10 15 20  
3 29 6 15 22  
4 13 6 18 15.5
5 22 8 22 22  
6 30 11 13 21.5

Aus dem Ergebnis können wir sehen:

  • Der Durchschnittswert von Spiel1 und Spiel3 in der ersten Zeile beträgt 22 .
  • Der Durchschnittswert von Spiel1 und Spiel3 in der zweiten Reihe beträgt 20 .
  • Der Durchschnittswert von Spiel1 und Spiel3 in der dritten Reihe beträgt 22 .

Und so weiter.

Beispiel 2: Maximale Anzahl spezifischer Spalten in jeder Zeile

Der folgende Code zeigt, wie der Maximalwert der Spalten game2 und game3 für jede Zeile im Datenrahmen berechnet wird:

 library (dplyr)

#calculate max of game2 and game3
df %>%
  rowwise() %>% 
  mutate(max_points = max(c(game2, game3), na. rm = TRUE ))

# A tibble: 6 x 4
#Rowwise: 
  game1 game2 game3 max_points
          
1 22 12 NA 12
2 25 10 15 15
3 29 6 15 15
4 13 6 18 18
5 22 8 22 22
6 30 11 13 13

Aus dem Ergebnis können wir sehen:

  • Der Maximalwert von game2 und game3 in der ersten Zeile beträgt 12 .
  • Der Maximalwert von game2 und game3 in der zweiten Zeile beträgt 15 .
  • Der Maximalwert von Spiel2 und Spiel3 in der dritten Reihe beträgt 15 .

Und so weiter.

Beispiel 3: Standardabweichung bestimmter Spalten in jeder Zeile

Der folgende Code zeigt, wie die Standardabweichung der Werte in den Spalten game2 und game3 für jede Zeile im Datenrahmen berechnet wird:

 library (dplyr)

#calculate standard deviation of game2 and game3
df %>%
  rowwise() %>% 
  mutate(sd_points = sd(c(game2, game3), na. rm = TRUE ))

# A tibble: 6 x 4
#Rowwise: 
  game1 game2 game3 sd_points
         
1 22 12 NA NA   
2 25 10 15 3.54
3 29 6 15 6.36
4 13 6 18 8.49
5 22 8 22 9.90
6 30 11 13 1.41

Aus dem Ergebnis können wir sehen:

  • Die Standardabweichung von Spiel2 und Spiel3 in der ersten Zeile beträgt NA (da die Standardabweichung nicht aus einem einzelnen Wert berechnet werden kann).
  • Die Standardabweichung von Spiel2 und Spiel3 in der zweiten Reihe beträgt 3,54 .
  • Die Standardabweichung von Spiel2 und Spiel3 in der ersten Zeile beträgt 6,36 .

Und so weiter.

Hinweis : Die vollständige Dokumentation der rowwise() -Funktion in dplyr finden Sie hier .

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben mit dplyr ausführen:

So zählen Sie unterschiedliche Werte mit dplyr
So summieren Sie mit dplyr mehrere Spalten
So ersetzen Sie mit dplyr mehrere Werte in einem Datenrahmen

Einen Kommentar hinzufügen

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