R 我如何为其余组的前四个滞后创建模式?

R 我如何为其余组的前四个滞后创建模式?,r,lag,R,Lag,我当前的代码 GuestFirst_B$Lag_Loyal2 <- Lag(Loyal, shift = 1) GuestFirst_B$Lag_Loyal1[which(!duplicated(GuestFirst_B$Property))] <- NA GuestFirst_B$Lag_Loyal2 <- Lag(Loyal, shift = 2) GuestFirst_B$Lag_Loyal2[which(!duplicated(GuestFirst_B$Propert

我当前的代码

GuestFirst_B$Lag_Loyal2 <- Lag(Loyal, shift = 1)
GuestFirst_B$Lag_Loyal1[which(!duplicated(GuestFirst_B$Property))] <- NA

GuestFirst_B$Lag_Loyal2 <- Lag(Loyal, shift = 2)
GuestFirst_B$Lag_Loyal2[which(!duplicated(GuestFirst_B$Property))] <- NA

GuestFirst_B$Lag_Loyal3 <- Lag(Loyal, shift = 3)
GuestFirst_B$Lag_Loyal3[which(!duplicated(GuestFirst_B$Property))] <- NA

GuestFirst_B$Lag_Loyal4 <- Lag(Loyal, shift = 4)
GuestFirst_B$Lag_Loyal4[which(!duplicated(GuestFirst_B$Property))] <- NA

GuestFirst\u B$Lag\u loyal 2一个选项是使用
shift
from
data.table

library(data.table)
setDT(df1)[, paste0("Lag_Loyal", 1:4) := shift(Loyal, 1:4), by = grp]