Ответ 1
Не слишком сложно сделать перерывы и ярлыки самостоятельно, с чем-то вроде этого. Здесь, поскольку средняя точка - это единственное число, я фактически не возвращаю фактор с метками, а вместо этого числовым вектором.
cut2 <- function(x, breaks) {
r <- range(x)
b <- seq(r[1], r[2], length=2*breaks+1)
brk <- b[0:breaks*2+1]
mid <- b[1:breaks*2]
brk[1] <- brk[1]-0.01
k <- cut(x, breaks=brk, labels=FALSE)
mid[k]
}
Вероятно, лучший способ получить разрывы бункеров и средние точки; Я не думал об этом очень тяжело.
Обратите внимание, что этот ответ отличается от Joshua's; он дает медиану данных в каждой ячейке, тогда как это дает центр каждой ячейки.
> head(cut2(x,3))
[1] 16.666667 3.333333 16.666667 3.333333 16.666667 16.666667
> head(ave(x, cut(x,3), FUN=median))
[1] 18 2 18 2 18 18