R plm lag()忽略面板结构

R plm lag() ignores panel structure

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

为什么 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))

当我 运行 你的代码时,我使用你的两种方法都得到了面板特定的滞后,所以你可能想再次检查它。我之前遇到过类似的麻烦,当时我不清楚我实际使用的 lag 函数([=11= 中有一个,plm 中有一个,[=13= 中有一个], 例如)。 运行 Em$lwage = plm::lag(Em$wage) 消除了这种歧义。