是否可以避免使用do和while循环来计算向量元素的总和,直到出现最后一个正元素或最后一个负元素。
答案 0 :(得分:6)
尝试以下方法:
x <- 5:-5
# sum until last positive:
sum(x[1:max(which(x > 0))])
x <- -5:5
# sum until last negative:
sum(x[1:max(which(x < 0))])
说明:
Which(x > 0)
给出一个索引号的向量,其中x大于0.取最大值得到最后一个这样的索引。然后剩下的就是将x从1加到此元素。我希望这会有所帮助。