A function that correctly lags panel data where units are identified by
id
and time periods are identified with t
. Results are in same
order as data
and are padded with NA
as needed.
panel_lag(x, id, t, lag = 1, data = NULL)
x | String identifying the vectors to be lagged in |
---|---|
id | String identifying the unit (e.g. country) identifier in
|
t | String identifying the time identifier in |
lag | Lag order, i.e. by how many time periods should |
data | A data frame. If not provided, a new one will be constructed with the vectors supplied for the other parameters. |
A vector of same length as x
representing lagged values with
leading NA
's.
data(coups) # No need to order before using panelLag, just do it here so we can compare results below. coups <- coups[order(coups$gwcode, coups$year), ] test <- panel_lag("polity2", "gwcode", "year", data=coups) # Compare output head(coups$polity2)#> [1] 10 10 10 10 10 10head(test)#> [1] NA 10 10 10 10 10