「モデル」オブジェクトのインデックスを作成して、直後に最適なモデルを選択できるようにしようとしています。私が見たいのは、model [i、j]です。私は、インデックスにしようとすると、それは言う: "モデルでエラーが発生しました[I、J] <を - GLM行列の添字の(NEWCOLは〜、データ= mod_data [C(mod_tab_new)] ,:数が正しくありません。"Forループでオブジェクトをインデックスする方法
はこちらコード:提案のため
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