在r中返回给定阈值的向量

时间:2019-09-23 18:37:44

标签: r

我已经在下面编写了代码-对于给定的阈值,应该将数字加起来直到等于或小于该阈值,例如(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)

1 个答案:

答案 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