我正在努力解决这个问题:
假设我有data("mtcars")
个数据帧。我想对此数据框的两列执行回归(例如mtcars$mpg
与mtcars$wt
),将每个回归的R平方和每个回归的残差存储到两个不同的数据框中,然后将两个独立的列向右移动和因变量(例如mtcars$cyl
与mtcars$qsec
)。我将需要重复此操作,直到到达最后一个独立变量列为止(在此mtcars
数据库中将是drat
列)。
任何帮助将不胜感激!
使用滚动应用于列索引。 List(c(-5,0))表示在每次迭代中使用偏移量-5和0。
library(zoo)
resids <- t(rollapply(1:ncol(mtcars), list(c(-5, 0)),
function(ix) resid(lm(mtcars[, ix]))))
rsquareds <- rollapply(1:ncol(mtcars), list(c(-5, 0)),
function(ix) summary(lm(mtcars[, ix]))$r.squared)
如果要反转是因变量和自变量,则改用list(c(0, -5))
。