我正在使用 glm() 根据我制作的向量 (h1_lines) 中的值创建几个不同的模型。我想 sapply 为向量中的每个值返回一个模型。相反,我的代码当前正在返回一个列表列表,其中列表的一部分是模型。它似乎正在返回我在 sapply 函数中所做的一切。
train = data.frame(scores=train[,y_col], total=train[,4], history=train[,5], line=train[,6])
h1_lines<- c(65, 70, 75)
models <- sapply(h1_lines, function(x){
temp_set<-train
temp_set$scores<-ifelse(temp_set$scores>x,1,
ifelse(temp_set$scores<x,0,rbinom(dim(temp_set)[1],1,.5)))
mod<-glm(scores ~ total + history + line, data=temp_set, family=binomial)
})
我希望代码能够工作,所以在这些行之后我可以这样做:
predict(models[1,], test_case)
predict(models[2,], test_case)
predict(models[3,], test_case)
但现在我不能这样做,因为 sapply 返回的不仅仅是模型......如果我打印(dim(models))它说模型有 30 行和 3 列?
编辑添加问题;
使用下面的代码建议效果很好,我可以进行 predict(models[[1]], test_case) 并且效果很好。如何返回/保存模型,以便我可以使用创建它们的密钥访问它们?例如,使用 h1_scores 可能类似于以下内容:
predict(models[[65]], test_case))
predict(models[[key==65]], test_case)