Description Usage Arguments Details Value Source See Also Examples
The function slides a column up or down to create lag or lead
variables. If GroupVar
is specified it will slide Var
for each
group. This is important for time-series cross-section data. The slid data is
placed in a new variable in the original data frame.
Note: your data needs to be sorted by date. The date should be ascending
(i.e. increasing as it moves down the rows). Also, the time difference
between rows should be constant, e.g. days, months, years.
1 2 |
data |
a data frame object. |
Var |
a character string naming the variable you would like to slide (create lag or lead). |
TimeVar |
optional character string naming the time variable. If specified then the data is ordered by Var-TimeVar before sliding. |
GroupVar |
a character string naming the variable grouping the units
within which |
NewVar |
a character string specifying the name for the new variable to place the slid data in. |
slideBy |
numeric value specifying how many rows (time units) to shift the data by. Negative values slide the data down–lag the data. Positive values shift the data up–lead the data. |
keepInvalid |
logical. Whether or not to keep observations for groups for
which no valid lag/lead can be created due to an insufficient number of time
period observations. If |
reminder |
logical. Whether or not to remind you to order your data by
the |
slide
a function for creating lag and lead variables, including for
time-series cross-sectional data.
a data frame
Partially based on TszKin Julian's shift
function:
http://ctszkin.com/2012/03/11/generating-a-laglead-variables/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # Create dummy data
A <- B <- C <- sample(1:20, size = 20, replace = TRUE)
ID <- sort(rep(seq(1:4), 5))
Data <- data.frame(ID, A, B, C)
# Lead the variable by two time units
DataSlid1 <- slide(Data, Var = 'A', NewVar = 'ALead', slideBy = 2)
# Lag the variable one time unit by ID group
DataSlid2 <- slide(data = Data, Var = 'B', GroupVar = 'ID',
NewVar = 'BLag', slideBy = -1)
# Lag the variable one time unit by ID group, with invalid lags
Data <- Data[1:16, ]
DataSlid3 <- slide(data = Data, Var = 'B', GroupVar = 'ID',
NewVar = 'BLag', slideBy = -2, keepInvalid = TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.