用于循环或函数有条件地减去两列的值

时间:2019-01-08 16:46:30

标签: r function for-loop

我在数据框中有两列:

x    y
0    1000
0    1000
4    1000
2    1000
10   1000
5    1000

我想做的是编写一个for循环或函数(以效率更高的一个为准),该循环或函数可以循环遍历y中的每个单元格,并将该值减去同一行中x的值并将结果输入到新列中“ z”。

诀窍是我想要一个条件,它可以记住z的最后一次计算值是什么,以便它不断记住循环或函数的最后结果,并从中减去x,而不是每次都减去y的相同值。 y的时间总是恒定的。看起来像是:

输出:

x    y       z
0    1000    1000
0    1000    1000
4    1000    996
2    1000    **994** #rather than 998
10   1000    **984**
5    1000    **979**

这样做的目的是测量样本量的分解。

1 个答案:

答案 0 :(得分:1)

我们将'x'列的累加和减去'y'来创建'z'列

df1$z <- with(df1, y - cumsum(x))
df1$z
#[1] 1000 1000  996  994  984  979