Возврат вектора для заданного порога в r - PullRequest
0 голосов
/ 23 сентября 2019

Я написал код ниже - для заданного порогового значения предполагается суммирование чисел до тех пор, пока оно не станет ниже или равно этому пороговому значению, например (0, 1, 1, 1, 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 голосов
/ 23 сентября 2019

Возможно, попробуйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...