R plm lag() игнорирует структуру панели

Я хочу создать лаги переменной. Очевидно, что при настройке данных панели лаги учитываются только внутри каждой панели.

Почему lag() plm не учитывает структуру панели (по умолчанию) и есть ли способ изменить это (без 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))

r plm
person SAFEX    schedule 07.12.2018    source источник


Ответы (1)


Когда я запускаю ваш код, я получаю задержку, связанную с панелью, используя оба ваших метода, поэтому вы можете проверить это снова. Я сталкивался с подобными проблемами раньше, когда не понимал, какую функцию lag я на самом деле использовал (например, одна в base R, одна в plm и одна в dplyr). Запуск Em$lwage = plm::lag(Em$wage) устраняет эту двусмысленность.

person tifu    schedule 07.12.2018