在R中运行回归循环的最佳方法是什么?

ste*_*ejb 3 r apply

假设我有可索引的数据X和Y的来源,比如说矩阵.我想运行一组独立的回归并存储结果.我最初的做法是

results = matrix(nrow=nrow(X), ncol=(2))
for(i in 1:ncol(X)) {
        matrix[i,] = coefficients(lm(Y[i,] ~ X[i,])

}
Run Code Online (Sandbox Code Playgroud)

但是,循环很糟糕,所以我可以用lapply来做

out <- lapply(1:nrow(X), function(i) { coefficients(lm(Y[i,] ~ X[i,])) } )
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

KT.*_*KT. 6

你肯定在这里过度优化.与模型拟合的过程相比,循环的开销可以忽略不计,因此简单的答案是 - 使用您发现的最容易理解的方式.我会去for-loop,但lapply也很好.