I have the following Python datatable
:
import datatable
import numpy as np
np.random.seed(42)
dt = datatable.Frame({"A":np.repeat(np.arange(0, 2), 5), "B":np.random.normal(0, 1, 10)})
dt
# A B
#0 0 −0.342855
#1 0 0.0706784
#2 0 0.0470259
#3 0 −0.0522357
#4 0 −0.610938
#5 1 −2.62617
#6 1 0.550128
#7 1 0.538717
#8 1 −0.487166
#9 1 0.996788
I want to create 4 lagged columns for the column B
for each value in column A
. This will result in the following datatable
:
# A B B_lag_1 B_lag_2 B_lag_3 B_lag_4
#0 0 −0.342855 NA NA NA NA
#1 0 0.0706784 −0.342855 NA NA NA
#2 0 0.0470259 0.0706784 −0.342855 NA NA
#3 0 −0.0522357 0.0470259 0.0706784 −0.342855 NA
#4 0 −0.610938 −0.0522357 0.0470259 0.0706784 −0.342855
#5 1 −2.62617 NA NA NA NA
#6 1 0.550128 −2.62617 NA NA NA
#7 1 0.538717 0.550128 −2.62617 NA NA
#8 1 −0.487166 0.538717 0.550128 −2.62617 NA
#9 1 0.996788 −0.487166 0.538717 0.550128 −2.62617
How can I achieve this?