我有一个向量,形式如下:
mass<-c(-2, -6, -79, 31, -28, 198, 132, 0, 262, -187, -475, 701, 926)
我需要对此向量中以下子集的值进行求和:
- 所有正数值;
- 负数值如果它们在向量中的前面有正数值。
所以在上面的例子向量中,我想从总和中排除-2、-6和-79(它们不符合正数值后跟的规则),但包括-28、-187和-475(因为它们是在向量中的正数值之前出现的)。
我可以用下面的方法来对正数值进行求和:
sum(mass[mass>0])
但是我不确定如何只包含符合我的条件的负值。
(我有很多向量需要执行类似的操作,它们并不都具有相同的负/正值序列,因此我也不能通过将向量子集排除前三个值来处理此问题,因为要排除的值的数量取决于向量)。
非常感谢您的任何帮助!