如何在不覆盖数据框中现有数据的情况下进行变异?

Hen*_*Liu 1 r economics dplyr

下面是我将使用的示例数据框。差异栏代表时间上的价格差异。例如,2001 年的价格预测为 6 + 3 = 9

时间 不同之处 价格
2000年 不适用 6
2001年 3 不适用
2002年 4 不适用
2003年 6 不适用
2004年 -8 不适用

现在我正在使用的代码如下,它不起作用,因为如果我要循环它,即使我这样做,它也会覆盖以前的数据。

Data <- Data %>%
  mutate(new_price = difference + lag(new_price))
Run Code Online (Sandbox Code Playgroud)

我正在寻找一段可以一次单击完成列表的代码,这样预期的结果将是

时间 不同之处 价格
2000年 不适用 6
2001年 3 9
2002年 4 13
2003年 6 19
2004年 -8 11

欢迎任何解决方案,非常感谢你们。

jka*_*tam 6

请尝试这个

library(tidyverse)
dat <- data.frame(time=c(2000,2001,2002,2003,2004,2005), diff=c(NA, 3, 4, 6, -8, 10), price=c(6, NA, NA, NA, NA, NA))
dat2 <- dat %>% mutate(price=cumsum(coalesce(diff,price)))
Run Code Online (Sandbox Code Playgroud)