R:向量中的平均附近元素

R: Average nearby elements in a vector

我有很多这样的向量:c(28, 30, 50, 55, 99, 102) 我想获得一个新的向量,其中元素之间相差小于 10 的元素被平均。在这种情况下,我想获得 c(29, 52.5, 100.5).

另一种方式

vec <- c(28, 30, 50, 55, 99, 102)
indx <- cumsum(c(0, diff(vec)) > 10)
tapply(vec, indx, mean)
#    0     1     2 
# 29.0  52.5 100.5