我正在尝试索引“模型”对象,以便我可以选择最适合的模型。我希望看到的结果是:model [i,j]。如果我尝试索引它说: “模型中的错误[i,j]< - glm(newcol~。,data = mod_data [c(mod_tab_new)],:矩阵上的下标数不正确”
这是代码:
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)
感谢您的建议。
答案 0 :(得分:0)
这是你想要的吗?
f <- function(mod_headers){
model <- list()
for(i in 1:length(mod_headers)){
tab <- combn(mod_headers,i)
model[[i]] <- list()
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"))
}
}
model
}
始终在for
循环之前,您打算使用值填充数据结构,您必须首先定义数据结构。在这种情况下,我制作了一个列表,并用glm
个对象填充它。