我有一个类似于下面的面板数据集:
Country Ccode Year Happiness Power ID
1 France FR 2000 1000 1000 01
2 France FR 2001 1200 1400 01
3 France FR 2000 1400 1800 02
4 France FR 2001 1600 2200 02
5 UK UK 2000 1000 1000 03
6 UK UK 2001 1000 1000 03
7 UK UK 2000 1000 1000 04
8 UK UK 2001 1000 1000 04
我真正感兴趣的是变量相对于时间的弹性程度。在计算这种弹性时,我想利用面板数据。
这就是我走多远:
library(tidyverse)
df <- df %>%
arrange(ID, Year)
group_by(ID) %>%
mutate_if(is.numeric, funs(d = . - lag(.)))
但这只是计算每个变量的差异,而不是特定变量的方差。
关于如何正确执行此操作的任何建议?
如果我理解正确,您想计算每年数值变量的方差吗?
df %>%
arrange(ID, Year) %>%
group_by(Year) %>%
mutate_if(is.numeric, funs(d = var(.)))
Country Ccode Year Happiness Power ID Happiness_d Power_d ID_d
<fct> <fct> <int> <int> <int> <int> <dbl> <dbl> <dbl>
1 France FR 2000 1000 1000 1 40000. 160000. 1.67
2 France FR 2001 1200 1400 1 80000. 320000. 1.67
3 France FR 2000 1400 1800 2 40000. 160000. 1.67
4 France FR 2001 1600 2200 2 80000. 320000. 1.67
5 UK UK 2000 1000 1000 3 40000. 160000. 1.67
6 UK UK 2001 1000 1000 3 80000. 320000. 1.67
7 UK UK 2000 1000 1000 4 40000. 160000. 1.67
8 UK UK 2001 1000 1000 4 80000. 320000. 1.67