一次添加一个向量中的元素并计算获得数字的成功率

时间:2014-03-19 22:56:37

标签: r vector simulation probability

在向量中逐个添加元素的最佳方法是什么,直到达到数字或者如果连续元素为负数则停止循环?从这里我需要添加一个不低于0的置换/成功率。这可能吗?

a=c(5,5,-5,-5,5,5,-5)
# Ans: 5 + 5 -5 -5 + 5 +5 -5    

a=c(5,-5,-5,-5,5,5,-5)
# stopped total goes negative after 3rd element
# Ans: 5 - 5 - 5

1 个答案:

答案 0 :(得分:1)

您可以使用cumsum进行管理,并返回向量元素的累积总和。

(ifelse是否没有负数累计金额)

> a <- c(5,-5,-5,-5,5,5,-5)
> 
> cumsum(a)
[1]   5   0  -5 -10  -5   0  -5
> 
> a[1:ifelse(any(cumsum(a) < 0), which(cumsum(a) < 0)[1], length(a))]
[1]  5 -5 -5