我试图找出向量段上的运行和。我查看了runSum函数,但无法使它工作,因为它首先需要一个" n“,它会导致小于n的所有值的NA;其次,我无法通过将它与sapply和split组合在向量的各个部分上运行它。例如,这样的代码不起作用:sapply(split(x, by = y), runSum)
x:是在分割或用y桶分割后想要加和的向量吗?
x <- c(5,8,7,9,13,10,8,4,7,12,14,11,9,8,12,13,16,8,8,5,6,6,6,4,8,11,12,13,15,14)
y <- c(1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6)我将演示向量的前10个元素所需的结果,这是一个名为目标值的变量中的前2个桶和第3个bin的第一个元素。
target <- c(5,13,20,29,13,23,31,35,42,12)发布于 2014-04-07 19:03:08
另一种选择是将cumsum与ave结合使用。
> ave(x, y, FUN=cumsum)
# [1] 5 13 20 29 13 23 31 35 42 54 14 25 34 42 54
# [16] 13 29 37 8 13 19 25 31 35 8 19 31 44 59 73https://stackoverflow.com/questions/22919559
复制相似问题