我只想生成一个变量,它捕获变量(v2x_polyarchy)每年的相对下降。这是我的 Dataframe 'episodes_demreg'的基本外观:
country_name year demreg_id v2x_polyarchy
<chr> <dbl> <dbl> <dbl>
Suriname 1974 1 0.536
Suriname 1975 1 0.375
Suriname 1979 2 0.713
Suriname 1980 2 0.226
Suriname 1990 3 0.743
Suriname 1991 3 0.455
基于非常相似的线程(Percent change difference for time series data)上的建议,我这样尝试:
episodes_demreg <- episodes_demreg %>%
group_by(demreg_id) %>%
mutate (decline_year_relative = ((v2x_polyarchy - lag(v2x_polyarchy)) / lag(v2x_polyarchy)) * 100)
但是,这不起作用,因为它会导致每个观察值为“0”。来回显示,显然“滞后”不起作用,实际上它减去了同一行的观察结果,而不是前一行。你知道为什么会这样吗
1条答案
按热度按时间lx0bsm1f1#
您正在使用
stats
包中的lag
,而您希望使用dplyr
包中的lag
。您可以在调用
lag
时指定包或将
dplyr
设置为默认包以使用lag