不平衡面板数据中的增长率

时间:2019-09-11 16:19:20

标签: r dplyr panel-data

我正在尝试获取不平衡面板数据中某些变量的增长率,但是多年来仍然没有滞后的结果。

我一直在尝试使用Dplyr库获取增长率。正如我在这里显示的:

total_firmas_growth <- total_firmas %>% 
  group_by(firma) %>% 
  arrange(anio, .by_group = T) %>% mutate(
    ing_real_growth = (((ingresos_real_2/Lag(ingresos_real_2))-1)*100)
)
例如,如果某公司在2008年的价值为“ ingresos_real_2”,而下一个值为2012年,则由于缺少年份(即2011年为缺少计算2012年增长率的方法,如您在下面带有“ firma” 115(id)的示例中所见:

total_firmas_growth <- 
"     firma        anio     ingresos_real_2  ing_real_growth
1          110         2005         14000               NA  
2          110         2006         15000              7.14  
3          110         2007         13000             -13.3   
4          115         2008         15000               NA  
5          115         2012         13000               NA  
6          115         2013         14000              7.69  

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

将原始表转换为具有不适用列的NA的最简单方法是使用所有分组列和您的年份创建小标题。 Expand创建您感兴趣的所有变量的小标题,{。}接受比管道更健壮的内容。 (我相信通过创建副本)。由于任何包含NA的数学运算都将导致NA,因此,如果您使用group_by,安排,变异代码,那么应该会得到所需的信息。

total_firmas %>% 
  left_join(
    expand({.}, firma, anio),
    by = c("firma","anio")
  )