J'utilise glm() pour créer quelques modèles différents basés sur les valeurs dans un vecteur que je fais (h1_lines). Je veux vraiment retourner un modèle pour chaque valeur du vecteur. Au lieu de cela, mon code renvoie actuellement une liste de listes où une partie de la liste est le modèle. Il semble retourner tout ce que je fais à l'intérieur de la fonction saphylle.sapply() Retour Surprenant Résultat - R
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)
})
Je voudrais que le code fonctionne donc après ces lignes que je peux faire:
predict(models[1,], test_case)
predict(models[2,], test_case)
predict(models[3,], test_case)
Mais maintenant je ne peux pas le faire causer sapply est de retour plus que le modèle .. Si je fais imprimer (dim (modèles)) il dit que les modèles ont 30 lignes et 3 colonnes ??
ÉDITER POUR AJOUTER UNE QUESTION; Utilisation de la suggestion ci-dessous le code fonctionne très bien, je peux faire prédire (modèles [[1]], test_case) et cela fonctionne parfaitement. Comment puis-je retourner/sauvegarder les modèles pour pouvoir y accéder avec la clé que j'ai utilisée pour les créer? Par exemple, en utilisant les h1_scores il pourrait être quelque chose comme ce qui suit:
predict(models[[65]], test_case))
predict(models[[key==65]], test_case)
Pouvez-vous fournir des exemples de données? 'train' se référence lui-même. – Thomas
De plus, votre fonction dans 'sapply' (qui devrait être' lapply', par réponse à @ Señor O) devrait probablement 'retourner' quelque chose. – Thomas
Techniquement 'mod' sera retourné puisque c'est la dernière ligne des accolades, mais je suis d'accord qu'il est préférable de mentionner explicitement ce qui est retourné pour la lisibilité. –