que tienen las siguientes 2 data.frames:comparar dos data.frames para encontrar las filas de hoja.de.datos 1 que no están presentes en hoja.de.datos 2
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
que quieren encontrar la fila tiene a1 que a2 no.
¿Existe una función incorporada para este tipo de operación?
(PS: Yo escribo una solución para ello, simplemente estoy ansioso por ver si alguien ya hizo un código más elaborado)
Aquí está mi solución:
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)
Encuentro esta función confusa. Pensé que funcionaría para mí, pero parece funcionar solo como se muestra arriba si un conjunto contiene filas idénticas del otro conjunto. Considere este caso: 'a2 <- data.frame (a = c (1: 3, 1), b = c (letras [1: 3]," c "))'. Deje 'a1' lo mismo. Ahora intenta la comparación.No me queda claro, incluso al leer las opciones, cuál es la forma correcta de enumerar solo los elementos comunes. – Hendy