Vergleichen Sie zwei data.frames, um die Zeilen in data.frame 1 zu finden, die in data.frame 2 nicht vorhanden sind.
Ich habe die folgenden 2 data.frames:
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
Ich möchte die Zeile finden, die a1 hat, die a2 nicht hat.
Gibt es eine eingebaute Funktion für diese Art von Operation?
(PS: Ich habe eine Lösung dafür geschrieben, ich bin einfach gespannt, ob jemand bereits einen besser gestalteten Code erstellt hat)
Hier ist meine Lösung:
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
rows.in.a1.that.are.not.in.a2 <- function(a1,a2)
{
a1.vec <- apply(a1, 1, paste, collapse = "")
a2.vec <- apply(a2, 1, paste, collapse = "")
a1.without.a2.rows <- a1[!a1.vec %in% a2.vec,]
return(a1.without.a2.rows)
}
rows.in.a1.that.are.not.in.a2(a1,a2)