Vergleichen Sie zwei data.frames, um die Zeilen in data.frame 1 zu finden, die in data.frame 2 nicht vorhanden sind

Habe ich die folgenden 2 Daten.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 a1, a2 nicht.

Gibt es eine integrierte Funktion für diese Art von Betrieb?

(p.s: geschrieben habe ich eine Lösung für Sie, ich bin einfach nur neugierig, ob jemand bereits eine mehr gestalteten code)

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)

InformationsquelleAutor der Frage Tal Galili | 2010-07-03

Schreibe einen Kommentar