Bonjour,
J'essaie de créer une matrice séparé en 3 partie (soit la diagonale, au-dessus de la diagonale en en-dessous), car chaque partie prend des valeurs différentes. Le problème que je rencontre est pour la partie en dessous de la diagonale, le restant fonctionne très bien et donne comme résultat ce que je souhaite. Voilà, je vous montre ce que j'ai fait pour l'instant.
J'avais déjà aussi essayer un autre code pour en-dessous de la diagonale, mais sans succès non plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 mattransErs <- matrix(nrow=50,ncol=50) diag(mattransErs) <- pnorm(toe$classe+1,matDHPfin,1.5)*matmorters upper.tri(mattransErs) mattransErs[upper.tri(mattransErs)] <- 0 lowermatErs<-lower.tri(mattransErs) for(j in ncol(mattransErs)) { for(i in nrow(mattransErs)){ if(mattransErs[[i,j]]=='TRUE') {mattransErs[i,j]<- matmorters*(pnorm(as.matrix(toe$classe)+3,matDHPfin,1.5)- pnorm(as.matrix(toe$classe)+1,matDHPfin,1.5)) } } }
Les données de la partie en-dessous sont calculés à partie d'un data frame (toe) et pour la variable classe, je souhaite par exemple que les calculs pour les valeurs de la cinquième ligne de la matrice soient associés à la cinquième valeur de la variable classe de mon data frame, même chose pour la sixième ligne avec la sixième valeur, etc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 lower.tri(mattransErs) mattransErs[lower.tri(mattransErs)]<- matmorters*(pnorm(toe$classe+1,matDHPfin,1.5)- pnorm(toe$classe+1,matDHPfin,1.5))
Lorsque je fais rouler ma boucle, rien ne se produit et rien ne change dans mes matrices. Ma question peux paraître un peu flou, mais si quelqu'un pourrait m'aider, cela serait très apprécié, puisque j'ai essayé plusieurs codes différents sans succès.
Partager