I want to create lagged variable for a variable pm10 and used the following code. However, I could not get what I wanted. How could I create a lag of pm10?
d
Another alternative is using the shift-function from the data.table package:
library(data.table)
setDT(df2)[, c("l1pm10","l1pm102") := .(shift(pm10, 1L, fill = NA, type = "lag"),
shift(pm10, 1L, fill = NA, type = "lead"))]
this gives:
> df2 var1 pm10 l1pm10 l1pm102 1: 1 26.95607 NA NA 2: 2 NA 26.95607 32.83869 3: 3 32.83869 NA 39.95607 4: 4 39.95607 32.83869 NA 5: 5 NA 39.95607 40.95607 6: 6 40.95607 NA 33.95607 7: 7 33.95607 40.95607 28.95607 8: 8 28.95607 33.95607 32.34877 9: 9 32.34877 28.95607 NA 10: 10 NA 32.34877 NA
Used data:
df2 <- structure(list(var1 = 1:10, pm10 = c(26.956073733, NA, 32.838694951,
39.9560737332, NA, 40.9560737332, 33.956073733, 28.956073733,
32.348770798, NA)), .Names = c("var1", "pm10"), row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10"), class = "data.frame")