首页 > 解决方案 > R plm lag() 忽略面板结构

问题描述

我想创建一个变量的滞后。在面板数据设置中,显然只在每个面板内考虑滞后。

为什么plmlag()尊重面板结构(默认情况下),有没有办法改变它(无需手动 dplyr 它)?

# Load example data
data("EmplUK", package = "plm")
Em <- pdata.frame(EmplUK, index=c('firm', 'year'))

# how I think it should have worked
Em$lwage_incorrect = lag(Em$wage)

# what actually works
Em= Em %>%  group_by(firm) %>%  mutate(lwage_correct = lag(wage))

标签: rplm

解决方案


当我运行您的代码时,我会使用您的两种方法获得特定于面板的滞后,因此您可能需要再次检查它。当我不清楚lag我实际使用的是什么功能(例如,有一个 in base R、一个 inplm和一个 in dplyr)时,我也遇到过类似的麻烦。运行Em$lwage = plm::lag(Em$wage)消除了这种歧义。


推荐阅读