C'è un modo veloce per trovare quali righe nella matrice A sono presenti nella matrice B? ad es.Confronto di righe tra due matrici
m1 = matrix(c(1:6), ncol=2, byrow = T); m2 = matrix(c(1:4), ncol=2, byrow=T);
e il risultato sarebbe 1, 2.
Le matrici non hanno lo stesso numero di righe (numero di colonne è lo stesso), e sono alquanto big - da 10^6 - 10^7 numero di righe.
Il modo più veloce di farlo, che io sappia, per ora, è:
duplicated(rbind(m1, m2))
Tnx!
La soluzione con 'duplicato' restituirebbe anche qualsiasi riga ripetuta all'interno di una matrice, anche se appare in una sola delle due matrici. Ad ogni modo, la risposta di @ MatthewDowle è ottima. –
'data.table' potrebbe essere più veloce perché non usa' do.call ("incolla" 'sotto il cofano .Se preferisci' duplicato' a 'M2 [M1]' poi 'duplicato (as.data.table (rbind (m1, m2))) 'potrebbe essere più veloce, per lo stesso motivo Interessato a vedere i tuoi orari –
@David Oh sì, buon punto sull'approccio' duplicato' –