Diferencia entre gran número de filas

Tengo una matriz con un gran número de filas y solo dos columnas emparejadas. Quiero calcular las diferencias entre cada fila en la columna 1 y si la diferencia es menor que un valor predefinido (.001), calcule el promedio de esas filas en ambas columnas. Por ejemplo tengo una matriz llamada pesos,

  A      B
185.0765 10
185.3171 20
186.0777 30
186.0780 40
188.0078 50

weights<-as.data.table(weights)
bins<-weights[A %between% c(A[3],(A[3]+.001))]
meanA<-mean(bins$A)
meanB<-mean(bins$B)

y la matriz resultante será,

  A      B
185.0765 10
185.3171 20
186.0779 35
188.0078 50

Agradecería que alguien me aconsejara cómo hacerlo para un gran número de filas. Creo que usar un bucle for no sería muy eficiente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta