我试图在一个不平衡的面板数据中获得一些变量的增长率,但在不存在滞后性的几年里,我仍然得到了结果。
我一直在尝试用库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 我非常感谢你的帮助。
发布于 2019-09-12 02:11:24
要将原始表转换为列的NAs格式,最简单的方法是创建一个带有所有分组列和年份的table。展开创建了一个对您感兴趣的变量的全方位的tibble,并且{.}接受任何比它更健壮的管道。(我相信,通过创建一个副本)。因为包括安娜在内的任何数学运算都会导致安娜,如果你使用你的group_by,在它之后排列,变异代码,这就会得到你想要的结果。
total_firmas %>%
left_join(
expand({.}, firma, anio),
by = c("firma","anio")
)https://stackoverflow.com/questions/57893214
复制相似问题