Vergleich von 2 Datensätzen mit R

Wie im Titel schön erwähnt, möchte ich hier einfach und schnell überprüfen, ob zwei Datensätze identisch sind. Insgesamt besteht das Vorgehen aus lediglich 2 Abfragen.

Sollten die Datensätze tatsächlich komplett identisch sein, sind wir nach der ersten Abfrage bereits fertig. Legen wir los!

Natürlich müssen wir zuerst die zu vergleichenden Datensätze in R einlesen. Um jedoch das Verfahren zu verdeutlichen, erstelle ich hier 2 unterschiedliche Datensätze.


Datensatz_1 <- tibble(Name = c("Hund", "Katze", "Maus", "Schwein"),
Alter = c(11, 10, 2, 15),
Preis = c(500, 200, 10, 15))

Datensatz_2 <- tibble(Name = c("Hund", "Katze", "Maus", "Schwein"),
Alter = c(11, 10, 2,
14),
Preis = c(500,
300, 10, 15))


Schritt 1 - “all_equal”

Mithilfe dieser Abfrage können wir global prüfen, ob Unterscheide vorliegen oder nicht. Sollten die Datensätze gleich sein, würden wir diese Meldung sehen:

> all_equal(Datensatz_1, Datensatz_2)
[1] TRUE

Somit wären wir hier am Ende, da unsere Datensätze tatsächlich gleich wären. In unserem Fall sind sie es nicht. Daher sehen wir folgende Meldung:

> all_equal(Datensatz_1, Datensatz_2)
[1] "- Rows in x but not in y: 2, 4\n- Rows in y but not in x: 2, 4\n"

Diese Meldung gibt schonmal einen Hinweis, dass die Datensätze nicht gleich sind. Die Zahlen “2, 4” geben weiterhin Hinweise darauf, in welchen Zeilen bestimmte Werte nicht übereinstimmen.

Schritt 2 - “comparedf”

Wir könnten uns jetzt selbst auf die Suche nach den Unterschieden machen - oder wir nutzen comparedf aus dem R-Package “arsenal”. Wir installieren also entsprechendes R-Package und verwenden folgenden Code:

library(arsenal)
summary(comparedf(Datensatz_1, Datensatz_2))

Neben einer Vielzahl an Informationen, erhalten wir relativ weit unten im Output folgende Tabelle, die genau auflistet, welche Werte in welchen Zeilen nicht identisch sind.

Genau was wir wollten.


Download des verwendeten R-Scripts: hier