我在数据框中有两列:
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**
这样做的目的是测量样本量的分解。
答案 0 :(得分:1)
我们将'x'列的累加和减去'y'来创建'z'列
df1$z <- with(df1, y - cumsum(x))
df1$z
#[1] 1000 1000 996 994 984 979