R plm lag() игнорирует структуру панели
Я хочу создать лаги переменной. В настройках данных панели очевидно, что лаги учитываются только внутри каждой панели.
Как так получилось plm
"s lag()
не уважает структуру панели (по умолчанию) и есть ли способ изменить это (без 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))
1 ответ
Решение
Когда я запускаю ваш код, я получаю специфичные для панели лаги, используя оба ваших метода, так что вы можете проверить это снова. Я попадал в подобные проблемы раньше, когда мне было непонятно, что lag
функция, которую я на самом деле использовал (есть одна в base R
, один в plm
и один в dplyr
, например). Бег Em$lwage = plm::lag(Em$wage)
устраняет эту двусмысленность