如何加入保留其 class ("glm" "lm") 的 glm 对象

How to join glm objects preserving their class ("glm" "lm")

我正在尝试为某些逻辑回归模型估计 Nagelkerke R^2。由于我有很多模型,我正在尝试使用 for 来自动化该过程。但是,当我将 glm 模型加入列表时,包 fmsb 中的 NagelkerkeR2() 函数给了我一个错误。

##Calculate Nagelkerke's R Squared
x<- list(m01,m02,m03,m04,m05,m06,m07,m08,m09,m10)
Nag_R2 <- NA

for (i in 1:10){
   NagelkerkeR2(x[1])[2] <- Nag_R2 
}

我认为发生此错误是因为此函数仅适用于 "glm" "lm" 对象。那么,有没有办法将 glm 对象作为单个 "glm" "lm" 对象加入?

我想你会寻找类似的东西:

Nag_R2 <- numeric(length(x))  ## pre-allocate vector
for (i in 1:10) {
   Nag_R2[i] <- NagelkerkeR2(x[[i]])[2]
}

这是假设 NagelkerkeR2 返回的任何内容的第二部分是您要保存的数值(我没有检查过)。

请注意,如果您想要返回一个对象而不是长度为 1 的列表,则需要使用 [[]] 来访问列表的元素:来自 Hadley Wickham,