我有一个与下面类似的面板数据集:
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(.)))但这只是计算每个变量的差异,而不是特定变量的方差。
对于如何正确地完成此操作,有什么建议吗?
发布于 2018-08-15 20:53:47
如果我没记错的话,你想计算每年数值变量的方差?
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.67https://stackoverflow.com/questions/51859018
复制相似问题