Erreur de[<-`(`*tmp*`, , indice hors limites indice hors limites
Dans le code suivant, je suis en train de créer une matrice liste de l'opt.lam pour chaque ville. Lors de l'exécution de la boucle, les deux premières villes toujours, et puis j'obtiens une erreur pour toutes les villes de la suite.
C'est l'erreur que je reçois. (coefmatrix fonctionne très bien, c'est juste le lambdamatrix qui produit cette erreur).
Erreur dans [<-
(*tmp*
, , i, valeur = c(0.577199381062121, 0.577199381062121, :
indice hors limites
Voici mon code:
lambdamatrix <- matrix(nrow=n,ncol=2)
rownames(lambdamatrix) <- cityIDs
colnames(lambdamatrix) <- c("lambda.min","lambda.1se")
for (i in 1:n) {
data <- subset(simdata, city==cityIDs[i])
x <- as.matrix(data.frame(data[,3:24]))
cvfit <- cv.glmnet(x, data$Y, family="poisson", offset=log(data$population))
opt.lam <- c(cvfit$lambda.min, cvfit$lambda.1se)
fit <- glmnet(x, data$Y, family= "poisson", offset=log(data$population))
abline(plot(fit, "lambda", label= TRUE,
main = cityIDs[i]), v=log(opt.lam), lty=2, lwd=3,
col=c("red","dark green"))
coefmatrix[,i] <- coef(fit, s=opt.lam[1])[1:23]
lambdamatrix[,i] <- c(cvfit$lambda.min, cvfit$lambda.1se)[1:n]
}`
Vous devez vous connecter pour publier un commentaire.
Dans
[,i]
,i
est la colonne de l'indexeur (alors que[i,]
serait une rangée d'indexation).Puisque vous définir
lambdamatrix
commematrix(nrow = n, ncol = 2)
, une fois que vous avez passéi=2
vous vous demandez quels sont les colonnes qui n'existent pas.