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 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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage