【问题标题】:Growth Rates in Unbalanced Panel Data不平衡面板数据中的增长率
【发布时间】:2020-01-13 12:49:59
【问题描述】:

我正在尝试获取不平衡面板数据中某些变量的增长率,但在不存在滞后的年份中,我仍然可以获得结果。

我一直在尝试使用库 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 年,则代码计算增长率而不是得到 NA,因为缺少年份(即 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  

非常感谢您的帮助。

【问题讨论】:

  • 谢谢弗利克先生,我刚刚发布了我的问题的编辑版本。非常感谢您的帮助。

标签: r dplyr panel-data


【解决方案1】:

将原始表格转换为列有 NA 的格式的最简单方法是创建一个包含所有分组列和您的年份的 tibble。 Expand 创建您感兴趣的变量的全部小标题,并且 {.} 接受比 . (通过创建副本,我相信)。由于任何包含 NA 的数学运算都会导致 NA,因此如果您在其后使用 group_by、排列、变异代码,这应该会让您得到想要的结果。

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

【讨论】:

  • 谢谢,真的很有帮助!!我得到了理想的结果。
猜你喜欢
  • 2021-06-01
  • 1970-01-01
  • 2020-06-07
  • 2014-10-30
  • 2019-06-18
  • 2021-08-25
  • 2016-06-07
  • 2014-12-02
  • 2021-01-29
相关资源
最近更新 更多