我有一个很大的A = M x N
矩阵,我想用最后一列对每一列(除了最后一列)进行回归。我希望结果是一个包含以下列的数据框
在优雅方面做到这一点的最佳方式是什么(不必编写循环以通过列,但使用现有函数)和性能(不需要永远)?
答案 0 :(得分:1)
如下所示:
A <- iris[1:4]
res <- apply(A[ , 1:(ncol(A)-1)], 2, function(x) lm(A[ , ncol(A)] ~ x, data = A))
slope <- sapply(res, coef)
r_squared <- sapply(res, summary)[8, , drop = FALSE]
t(rbind(slope, r_squared))
## (Intercept) x r.squared
## Sepal.Length -3.200215 0.7529176 0.6690277
## Sepal.Width 3.156872 -0.6402766 0.1340482
## Petal.Length -0.3630755 0.4157554 0.9271098