3
我需要从矢量中减去一个数字,以便从元素中连续减去它。作为一个例子,考虑矢量a = c(8, 4)
。如果我想连续从这个向量中减去9,我首先从第一个向量元素减去9,即第一个向量元素减去9,第一个元素的值为1,然后从第二个元素中减去。为第二个向量元素留下4-1 = 3。从矢量元素中连续减去
我可以用一堆不雅的if-else语句来做到这一点。一定会有更好的办法。这将更容易显示示例:
我假设串行减法函数被称为serialSub。
a = c(8,4)
serialSub(a,4)
> [1] 4 4
serialSub(a,8)
> [1] 0 4
serialSub(a,9)
> [1] 0 3
serialSub(a,13)
> [1] 0 0
serialSub(a,0)
> [1] 8 4
或'PMIN(P最高(0,cumsum(一) - V),A)',我想。 – Frank
@Frank不错的一个 - 'pmax(0,cumsum(a)-v)'也适用于所得到的向量的累加和,我喜欢我们可以在'和'之间使用'pmin'的观察'确定要保留什么而不是使用'diff'。 – josliber