A: überprüfen sie, ob die zeile eines datenrahmens in einem anderen vorhanden ist
Mit der folgenden Syntax können Sie einem Datenrahmen in R eine neue Spalte hinzufügen, die angibt, ob jede Zeile in einem anderen Datenrahmen vorhanden ist:
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)
Diese spezielle Syntax fügt dem Datenrahmen namens df1 eine Spalte namens exist hinzu, die TRUE oder FALSE enthält, um anzugeben, ob jede Zeile in df1 in einem anderen Datenrahmen namens df2 vorhanden ist.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Überprüfen Sie, ob eine Zeile aus einem Datenrahmen in einem anderen in R vorhanden ist
Angenommen, wir haben die folgenden zwei Datenrahmen in R:
#create first data frame
df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
dots=c(12, 15, 22, 29, 24))
#view first data frame
df1
team points
1 to 12
2 B 15
3 C 22
4 D 29
5 E 24
#create second data frame
df2 <- data. frame (team=c('A', 'D', 'F', 'G', 'H'),
dots=c(12, 29, 15, 19, 10))
#view second data frame
df2
team points
1 to 12
2 D 29
3 F 15
4 G 19
5:10 a.m.
Mit der folgenden Syntax können wir dem ersten Datenrahmen eine Spalte namens „exists“ hinzufügen, die angibt, ob jede Zeile im zweiten Datenrahmen vorhanden ist:
#add new column to df1 that shows if row exists in df2
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)
#view updated data frame
df1
team points exists
1 TO 12 TRUE
2 B 15 FALSE
3 C 22 FALSE
4 D 29 TRUE
5 E 24 FALSE
Die neue Spalte „existiert“ gibt an, ob jede Zeile im ersten Datenrahmen im zweiten Datenrahmen vorhanden ist.
Aus dem Ergebnis können wir sehen:
- Die erste Zeile von df1 existiert in df2 .
- Die zweite Zeile von df1 existiert in df2 nicht.
- Die dritte Zeile von df1 existiert in df2 nicht.
Und so weiter.
Beachten Sie, dass Sie is.numeric() auch verwenden können, um in der vorhandenen Spalte Einsen und Nullen anstelle von TRUE oder FALSE anzuzeigen:
#add new column to df1 that shows if row exists in df2
df1$exists <- as. numeric (do. call (paste0, df1) %in% do. call (paste0, df2))
#view updated data frame
df1
team points exists
1 to 12 1
2 B 15 0
3 C 22 0
4 D 29 1
5 E 24 0
Der Wert 1 gibt an, dass die Zeile aus dem ersten Datenblock im zweiten vorhanden ist.
Umgekehrt bedeutet ein Wert von 0 , dass die Zeile im ersten Datenrahmen im zweiten nicht vorhanden ist.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:
A: So überprüfen Sie, ob mehrere Spalten gleich sind
A: So wählen Sie einzelne Zeilen in einem Datenrahmen aus
A: So replizieren Sie Zeilen in einem Datenrahmen