在For循环中无法连续输出回归模型summary结果的技术求助
问题原因与解决方法
你的代码问题出在summary(lm(i))这一行:
lm(i)是在调用线性回归函数lm(),把循环变量i传进去,根本不是你之前用assign创建的lm1、lm2这些模型对象,自然输出不了正确的summary。
方案1:修正原代码的调用方式
把summary(lm(i))改成用get()函数获取你创建的模型对象,代码如下:
data("popular") variabile <- names(popular) for(i in 1:4) { assign(paste0("lm", i), lm(paste0(variabile[i], "~ texp"), data=popular)) summary(get(paste0("lm", i))) }
方案2:用列表存储模型(更推荐)
用assign创建一堆单独变量的做法并不规范,推荐把所有模型存在一个列表里,后续查看和操作都更方便:
data("popular") variabile <- names(popular) # 初始化一个空列表存储模型 model_list <- list() for(i in 1:4) { model_list[[i]] <- lm(paste0(variabile[i], "~ texp"), data=popular) # 直接输出当前模型的summary summary(model_list[[i]]) } # 后续如果要查看某个模型的summary,直接调用: # summary(model_list[[1]])
内容的提问来源于stack exchange,提问作者Dodo
相关产品推荐
相关产品推荐

