下面是我将使用的示例数据框。差异栏代表时间上的价格差异。例如,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 |
欢迎任何解决方案,非常感谢你们。
请尝试这个
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)