So überprüfen Sie, ob zwei Datenrahmen gleich sind [duplizieren]
Diese Frage hat hier bereits eine Antwort:
zum Matrixvergleich in R 1 AntwortAngenommen, ich habe große Datensätze in R und möchte nur wissen, ob zwei davon identisch sind. Ich benutze dies oft, wenn ich verschiedene Algorithmen experimentiere, um das gleiche Ergebnis zu erzielen. Angenommen, wir haben die folgenden Datensätze:
df1 <- data.frame(num = 1:5, let = letters[1:5])
df2 <- df1
df3 <- data.frame(num = c(1:5, NA), let = letters[1:6])
df4 <- df3
Also das ist, was ich tue, um sie zu vergleichen:
table(x == y, useNA = 'ifany')
Was funktioniert gut, wenn die Datensätze keine NAs haben:
> table(df1 == df2, useNA = 'ifany')
TRUE
10
Aber nicht so sehr, wenn sie NAs haben:
> table(df3 == df4, useNA = 'ifany')
TRUE <NA>
11 1
In dem Beispiel ist es einfach, das zu verwerfenNA
da kein problem da wir wissen das beide dataframessind gleich. Das Problem ist, dassNA == <anything>
AusbeutenNA
, also immer wenn einer der Datensätze einen hatNA
, es ist egal, was der andere auf der gleichen Position hat, das Ergebnis wird immer seinNA
.
Also mittable()
Datensätze zu vergleichen, erscheint mir nicht ideal.Wie kann ich besser überprüfen, ob zwei Datenrahmen identisch sind?
P.S .: Beachten Sie, dass dies kein Duplikat von istR - Vergleich mehrerer Datensätze, Vergleichen von 2 Datensätzen in R oderVergleichen Sie Datensätze in R