Diferença entre grande número de linhas

Eu tenho uma matriz com um número muito grande de linhas e apenas duas colunas emparelhadas. Eu quero calcular as diferenças entre cada linhas na coluna 1 e se a diferença for menor que um valor predefinido (0,001), em seguida, calcule a média dessas linhas em ambas as colunas. Por exemplo, eu tenho uma matriz chamada 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)

e a matriz resultante será,

  A      B
185.0765 10
185.3171 20
186.0779 35
188.0078 50

Eu ficaria grato se alguém pudesse por favor me aconselhar como fazer isso para um grande número de linhas. Eu acho que usar um loop for não seria muito eficiente.

questionAnswers(1)

yourAnswerToTheQuestion