【发布时间】:2014-01-31 18:33:44
【问题描述】:
我是 R 新手,我正在浏览一本名为“使用 R 发现统计数据”的书。 虽然这本书暗示你不需要任何统计背景,但有些内容没有涵盖/解释......
我试图从位置 1 开始对向量的元素求和,直到出现正元素。
我发现this 问题与我想要实现的目标非常相似。但是,当我实现它时,它似乎并不总是有效(有时它似乎包含第一个积极元素)......
我的程序是:
vecA <- runif(10, -10, 10);
sumA <-sum(vecA [1:min(which(vecA < 0))]);
有没有更稳健的方法来计算这个而不使用每次都有效且不添加正元素的循环?我还没有进入我的书循环阶段。
我还发现this 网站提出了类似的问题,但他们的回答错误:
sum(vecA [seq_len(which.max(vecA > 0)]);
【问题讨论】:
-
你正在做的也许是最简单的方法。 cmets 中的答案很好,但过于复杂,很难理解一个简单的想法。
-
如果第一个元素是正数(没有要求和的元素),你想要的输出是什么?
-
@BlueMagister 我认为它应该返回 0?无论如何,这似乎是合理的。