Разница между большим количеством строк

У меня есть матрица с очень большим количеством строк и только двумя парными столбцами. Я хочу рассчитать разницу между каждой строкой в столбце 1, и если разница меньше предварительно определенного значения (.001), то вычислить среднее значение этих строк в обоих столбцах. Например, у меня есть матрица весов,

  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)

и полученная матрица будет,

  A      B
185.0765 10
185.3171 20
186.0779 35
188.0078 50

Я был бы благодарен, если бы кто-то мог посоветовать мне, как сделать это для большого количества строк. Я думаю, что использование цикла не будет очень эффективным.

Ответы на вопрос(1)

Ваш ответ на вопрос