Bonjour à tous,

j'ai un problème pour remplir une matrice avec mes résultats.
Je dispose d'une matrice vide et d'un dataframe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
mat=matrix(nrow=6,ncol=6)
colnames(mat)=c("A","B","C","D","E","F")
rownames(mat)=c("A","B","C","D","E","F")
ligne=c(4,5,6)
colonne=c(1,4,3)
nom_ligne=c("D","E","F")
nom_colonne=c("A","D","C")
resultat=c("T","B","B-T")
dat=data.frame(ligne,colonne,nom_ligne,nom_colonne,resultat)
Je voudrais remplir la matrice avec les valeurs contenues dans "resultat" du dataframe.
Pour cela, je dispose dans le dataframe des indices de ligne et colonne (et leurs noms) correspondant à la case de la matrice à remplir.

J'ai codé une triple boucle, où le compteur i parcourt les indices de la ligne, j parcourt les indices de la colonnne, et z parcourt le dataframe

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
taille=dim(dat)[1]
for (i in ligne)	
{
for (j in colonne)
{
for (z in 1:taille)		
{
mat[i,j]<-resultat[z]
}
}
}
mais les cases remplies ne sont pas celles que je veux.
Quel est le problème dans ma boucle?
Il y a moyen de le faire sans une boucle (par exemple en prenant en compte le nom des lignes et colonnes)?

Merci à tous.