¿Existe una forma rápida de encontrar qué filas en la matriz A están presentes en la matriz B? p.Comparación de filas entre dos matrices
m1 = matrix(c(1:6), ncol=2, byrow = T); m2 = matrix(c(1:4), ncol=2, byrow=T);
y el resultado sería 1, 2.
Las matrices no tienen el mismo número de filas (número de columnas es el mismo), y que son algo grande - de 10^6 - 10^7 número de filas.
La forma más rápida de hacerlo, que yo sepa, por ahora, es:
duplicated(rbind(m1, m2))
TNX!
Su solución con 'duplicated' también volverían las filas que se repiten dentro de una matriz, incluso si aparece en sólo una de las dos matrices. De todos modos, la respuesta de @ MatthewDowle es genial. –
'data.table' podría ser más rápido porque no utiliza' do.call ("paste" 'under the hood. Si prefiere' duplicated' a 'M2 [M1]' then 'duplicated (as.data.table (rbind (m1, m2))) 'podría ser más rápido, por la misma razón. Interesado en ver sus tiempos. –
@David Oh, sí, es un buen punto sobre el enfoque' duplicado' –