我在嘗試索引「模型」對象,以便我可以選擇最適合的模型。我想看到的結果是: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