让我们假设整数x。我希望在n中将这个数量除以大部分相等的块,并将值保存在一个向量中。例如,如果是x = 10和n = 4,那么产生的向量是:
(3,3,2,2)如果n = 3
(4,3,3)注:结果向量的顺序不重要。
发布于 2017-03-26 23:32:10
虽然当x很大时,这将创建一个(可能是不必要的)大对象,但它仍然非常快:
x <- 10
n <- 4
tabulate(cut(1:x, n))
#[1] 3 2 2 3在一台很好的现代机器上,把10米记录分成100 K组,只需5秒:
x <- 1e7
n <- 1e5
system.time(tabulate(cut(1:x, n)))
# user system elapsed
# 5.07 0.06 5.13 https://stackoverflow.com/questions/43035489
复制相似问题