我已经在下面编写了代码-对于给定的阈值,应该将数字加起来直到等于或小于该阈值,例如(0,1,1,1,2,2,4)-0 + 1 + 1 + 1 = 3并提供迭代次数,即4。这似乎可行,但不适用于向量,例如[1:10]-我在做什么错了?
sumf<-function(y){
sum<-0
for(i in 1:(length(y))){
sum=sum+y[i]
}
print(sum)
}
sumf(x<n)
答案 0 :(得分:0)
也许尝试cumsum
。
x <- c(0, 6, 3, 8, 5, 2, 4, 0, 2, 2)
data.frame(id = 1:length(x), x, sum = cumsum(x))
id x sum
1 1 0 0
2 2 6 6
3 3 3 9
4 4 8 17
5 5 5 22
6 6 2 24
7 7 4 28
8 8 0 28
9 9 2 30
10 10 2 32