我正在一个项目中,我需要收集几个线性回归的截距,斜率和R平方。由于我至少需要200个不同样本大小的样本,因此我在下面设置了代码,但它只保存了循环的最后一次迭代。关于如何记录每个循环的任何建议,以便可以获取所需的所有系数和r平方。

for (i in 1:5) {
  x <- as.data.frame(mydf[sample(1:1000,25,replace=FALSE),])
  mylm <- lm(spd66305~spd66561, data=x)
  coefs <- rbind(lman(mylm))
  total.coefs <- rbind(coefs)
}
total.coefs

如果需要,循环中使用的功能如下。
lman <- function(mylm){
  r2 <- summary(mylm)$r.squared
  r <- sqrt(r2)
  intercept <- coef(mylm)[1]
  slope <- coef(mylm)[2]
  tbl <- c(intercept,slope,r2,r)
}

谢谢您的帮助。

最佳答案

在开始循环之前,您可以编写total.coefs <- data.frame(),以初始化一个空的data.frame。然后在循环中,您要更新total.coefs,如下所示:total.coefs <- rbind(total.coefs, coefs)。最后,将lman中的最后一行替换为:tbl <- data.frame(intercept=intercept, slope=slope, r2=r2, r=r)

关于r - 在R中保存for循环的迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26704730/

10-10 02:27