Tengo dos marcos de datos df1 y df2. Ellos tienen las mismas (dos) columnas. Quiero eliminar las filas de df1 que están en df2.R: eliminar filas de un marco de datos que están en otro
Respuesta
Puede hacerlo con varios paquetes. Pero aquí está cómo hacerlo con R. base de
df1 <-matrix(1:6,ncol=2,byrow=TRUE)
df2 <-matrix(1:10,ncol=2,byrow=TRUE)
all <-rbind(df1,df2) #rbind the columns
#use !duplicated fromLast = FALSE and fromLast = TRUE to get unique rows.
all[!duplicated(all,fromLast = FALSE)&!duplicated(all,fromLast = TRUE),]
[,1] [,2]
[1,] 7 8
[2,] 9 10
Me gusta esto, pero no lo entiendo. Me gusta porque (a diferencia de la otra respuesta) deja intactas las tres variables en mis marcos de datos (la otra respuesta las borra y agrega una nueva "v1" que parece ser la fila. Nombres de uno de los DF originales). No lo entiendo, ya que esta es la primera vez que veo "! Duplicated" used - plus (o "and"?) No entiendo cómo funcionan las partes "fromLast" "FALSE" y "TRUE". Algo más para estudiar. Pero es una solución elegante. – WGray
Hola, ¿La solución también funciona por más de 2 veces filas duplicadas? – eclairs
@eclairs Si entiendo su pregunta correctamente, sí, esta solución excluirá múltiples duplicados. –
Prueba esto:
df2 <-matrix(1:6,ncol=2,byrow=TRUE)
df1 <-matrix(1:10,ncol=2,byrow=TRUE)
data.frame(v1=setdiff(df1[,1], df2[,1]), v2=setdiff(df1[,2], df2[,2]))
v1 v2
1 7 8
2 9 10
Tenga en cuenta que df1
y df2
son los mismos que Lapointe de pero en el revés, debido a que desea eliminar la filas de df1 que están en df2, por lo que setdiff elimina elementos de x
que están contenidos en y
. Ver ?setdiff
que obtendrá el mismo resultado que de Lapointe
setdiff - buena pena, otra de las muchas formas en que r's puede hacer lo mismo si puede encontrarla. Aprecio la ayuda de todos. – user1320487
- 1. R, eliminar condicionalmente filas duplicadas
- 2. Eliminar filas en el marco de datos con el factor ""
- 3. Cómo reducir automáticamente los números de fila en el marco de datos R al eliminar filas en R
- 4. Identificación de columnas duplicadas en un marco de datos R
- 5. Operar en pares de filas de un marco de datos
- 6. Subconjunto de un marco de datos basado en el contenido de otro marco de datos
- 7. ¿Cómo eliminar la primera fila de un marco de datos en R?
- 8. R eliminar caracteres especiales del marco de datos
- 9. Cómo ordenar un marco de datos en R
- 10. En R, ¿por qué la selección de filas de un marco de datos devuelve datos como un vector si el marco de datos tiene solo una columna?
- 11. En R, ¿cómo recorre las filas de un marco de datos realmente rápido?
- 12. Convierte un Gráfico en un Marco de Datos en R
- 13. R: perder nombres de columna al agregar filas a un marco de datos vacío
- 14. Eliminación de filas de trama de datos R
- 15. Eliminación de datos de fin de semana en un marco de datos R
- 16. Para cada fila en un marco de datos R
- 17. Combinar filas dentro del marco de datos
- 18. ¿Cómo eliminar filas con un valor cero en R?
- 19. clase "Por" en marco de datos en R
- 20. ¿Puedo incluir un marco en otro marco?
- 21. Filtrar un marco de datos
- 22. Cómo omitir las filas no válidas al leer el marco de datos del archivo en R?
- 23. R evaluar cadena como marco de datos
- 24. ¿Cómo puedo seleccionar filas de un marco de datos que no coinciden?
- 25. Eliminar columnas NULL en un marco de datos Pandas?
- 26. Agregando un dataframe al final de otro data.frame en R
- 27. R: Al pasar un marco de datos por referencia
- 28. Crear un nuevo marco de datos en R a partir de un marco de datos existente e inadecuado
- 29. Trazado de datos contra tiempo en R
- 30. Cuenta el número de filas que no están dentro de 10 segundos el uno del otro
relacionados: http://stackoverflow.com/questions/3171426/compare-two-data-frames-to-find-the-rows-in- data-frame-1-that-are-not-present-in – Ben