Calcular la distancia de Hamming por parejas entre todas las filas de dos matrices enteras / marcos de datos

Tengo dos marcos de datos,df1 con datos de referencia ydf2 con nuevos datos Para cada fila endf2, Necesito encontrar la mejor (y la segunda mejor) fila coincidente paradf1 en términos de distancia de hamming.

solíae1071 paquete para calcular la distancia de hamming. Distancia de Hamming entre dos vectoresx yy se puede calcular como por ejemplo:

x <- c(356739, 324074, 904133, 1025460, 433677, 110525, 576942, 526518, 299386,
       92497, 977385, 27563, 429551, 307757, 267970, 181157, 3796, 679012, 711274,
       24197, 610187, 402471, 157122, 866381, 582868, 878)

y <- c(356739, 324042, 904133, 959893, 433677, 110269, 576942, 2230, 267130,
       92496, 960747, 28587, 429551, 438825, 267970, 181157, 36564, 677220,
       711274, 24485, 610187, 404519, 157122, 866413, 718036, 876)

xm <- sapply(x, intToBits)
ym <- sapply(y, intToBits)

distance <- sum(sapply(1:ncol(xm), function(i) hamming.distance(xm[,i], ym[,i])))

y la distancia resultante es 25. Sin embargo, necesito hacer esto para todas las filas dedf1 ydf2. Un método trivial toma un nido de doble bucle y se ve terriblemente lento.

¿Alguna idea de cómo hacer esto de manera más eficiente? Al final necesito unirme adf2:

una columna con el id. de fila dedf1 eso da la distancia más baja;una columna con la distancia más baja;una columna con el id. de fila dedf1 eso da la 2da distancia más baja;una columna con la segunda distancia más baja.

Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta