So überprüfen Sie, ob zwei Datenrahmen gleich sind [duplizieren]

Diese Frage hat hier bereits eine Antwort:

zum Matrixvergleich in R 1 Antwort

Angenommen, 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&nbsp;da kein problem da wir wissen das beide dataframessind&nbsp;gleich. Das Problem ist, dassNA == <anything>&nbsp;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()&nbsp;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&nbsp;oderVergleichen Sie Datensätze in R