Los datos de bucle continuo con retardos de tiempo secuenciales generan coeficientes de regresión lineal

Tengo un conjunto de datos así:

 set.seed(242)
 df<- data.frame(month=order(seq(1,20,1),decreasing=TRUE), 
 psit=sample(1:100,20,replace=TRUE),  var=sample(1:10,20, 
 replace=TRUE))

Deseo hacer un análisis crudo del desfase temporal para ver qué tan rezagadovar&nbsp;los datos afectanpsit&nbsp;datos. Un retraso, como se define en este análisis crudo, esvar&nbsp;datos T-1, T-2, T-3, etc. meses en el pasado de cadapsit&nbsp;punto de datos.

Para ver como los meses anterioresvar&nbsp;los datos afectanpsit&nbsp;datos, deseo hacer untimelag&nbsp;vector que consiste envar&nbsp;datos que son un mes compensado de lapsit&nbsp;variable. Entonces ataré eltimelag&nbsp;vector a lapsit&nbsp;vector. Estos son ejemplos de los marcos de datos para una compensación de 1 mes, compensación de 2 meses, compensación de 3 meses, respectivamente:

 set.seed(242)
 timelag1<- cbind(df[1:12,2], df[2:13,3]) #1 month time lag
 timelag2<- cbind(df[1:12,2], df[3:14,3]) #2 month time lag
 timelag3<- cbind(df[1:12,2], df[4:15,3]) #3 month time lag

Para cada marco de datos, quiero retrocedervar&nbsp;en contrapsit&nbsp;datos utilizando ellm()&nbsp;función y salida del valor R cuadrado. Este proceso se repetiría para cada desplazamiento posterior. Ejemplo a continuación:

 model1<-lm(timelag1)
 summary(model1)$r.squared
 model2<-lm(timelag2)
 summary(model2)$r.squared
 model3<-lm(timelag3)
 summary(model3)$r.squared

Me gustaría crear un ciclo que repita este proceso para un gran conjunto de datos de 240 meses. Luego ejecuta unlm()&nbsp;en cada marco de datos y luego generar el valor r cuadrado.