我正在尝试使用 dplyr/tidyr 函数创建两个新变量,方法是使用来自先前但相关行的数据。在我的示例中,我有一个 data.frame,其中包含 ID、YEAR 和 AMOUNT 的数据(见下文)。
ID YEAR AMOUNT
A 2000 4
B 2000 4
A 2001 2
B 2001 3
A 2002 3
B 2002 1
我想使用 dplyr/tidyr 动态创建最后两列(见下文)(我找到了一种定期执行此操作的方法,但我很想知道如何在 dplyr/tidyr 的最新版本中执行此操作)。
ID YEAR AMOUNT YtY_VARIANCE Y_VARIANCE
A 2000 4 0 0
B 2000 4 0 0
A 2001 2 -2 -2
B 2001 3 -1 -1
A 2002 3 +1 -1
B 2002 1 -2 -3
其中 YtY_VARIANCE 是通过从上一年中减去金额获得的,而 Y_VARIANCE 是通过从第一年中减去金额获得的(始终)。
我希望这样的代码:
raw_data %>%
group_by(ID, YEAR) # Not even sure if that's required?!?
mutate(YtY_VARIANCE = xxx(), Y_VARIANCE = yyy() )
xxx和yyy应该是什么?!这甚至可能吗?
任何人都可以告诉我或指出我的答案吗?
提前致谢!