我在尝试索引“模型”对象,以便我可以选择最适合的模型。我想看到的结果是:model [i,j]。如果我试图指数,它说: “模型[I,J] <错误 - GLM(NEWCOL〜,数据= mod_data [C(mod_tab_new),:矩阵标数量不正确”如何索引For循环中的对象R
这里代码:
rm(list = ls())
mod_data <- NULL
mod_data$Sex <- sample(0:1, size = 1000, replace = T)
mod_data$Age <- sample(18:99, size = 1000, replace = T)
mod_data <- data.frame(mod_data)
mod_data$newcol <- sample(0:1, size = nrow(mod_data), replace = T)
mod_headers <- names(mod_data[1:ncol(mod_data)-1])
f <- function(mod_headers){
for(i in 1:length(mod_headers)){
tab <- combn(mod_headers,i)
for(j in 1:ncol(tab)){
tab_new <- c(tab[,j])
mod_tab_new <- c(tab_new, "newcol")
model[i,j] <- glm(newcol ~., data=mod_data[c(mod_tab_new)], family = binomial(link = "logit"))
}
}
}
f(mod_headers)
感谢您的建议
需要在赋值之前预定义矩阵的形状。在for循环之前添加'model <-matrix(nrow = length(mod_headers),ncol = ncol(tab))'。请注意,如果“tab”的值需要设置为最大期望值。 – Dave2e