13520982976
使用cumsum(a)/n
的思路大方向是对的,试试这个:
library(tidyverse)
# data
set.seed(123)
a = c(2,3,1,4,2,2)
# number of groups
n =3
# divide a into n groups using cut
grp = as.numeric(cut(cumsum(a), n))
# result
df = data.frame(a=a, grp = grp)
result.df = df %>%
group_by(grp) %>%
mutate(grpsum = sum(a))
result.df
#> # A tibble: 6 x 3
#> # Groups: grp [3]
#> a grp grpsum
#> <dbl> <dbl> <dbl>
#> 1 2 1 6
#> 2 3 1 6
#> 3 1 1 6
#> 4 4 2 4
#> 5 2 3 4
#> 6 2 3 4
<sup>Created on 2019-03-05 by the reprex package (v0.2.1)</sup>
你需要的分组用 grp = as.numeric(cut(cumsum(a), n))
应该够了
不过这个分组跟你的112233稍微不一样,在我测试100个元素时,肉眼看了一下每组的和还是大致均匀。