我有数据。
dat <- data.frame(t=1:100,y=rnorm(100),x1=rnorm(100)),x2=rnorm(100))
其中t
表示时间点。我想在每个时间点上,基于之前的时间点,将y
与x1
和x2
进行回归分析。
我可以创建一个循环实现。
reg <- matrix(rep(NA,3*nrow(dat),ncol=3)
for(i in 11:nrow(dat)){
reg[i,] <- coefficients(lm(y ~ x1 + x2, data=dat[1:i,]))
}
但我想知道是否有一种向量化的方法来处理这个问题,也许可以使用data.table
。
reg2 <- t(sapply(11:nrow(dat), function(n) coefficients(lm(y ~ x1 + x2, data=dat[1:n,]))))
。请注意,在您的代码中,reg[1:10, ]
的值为NA
。 - Rui Barradas