Bonjour,
J'ai un vecteur x de longueur n dont les composantes sont des chaînes de caractère, et je souhaiterais créer une matrice mat de taille n x n telle que :
mat[i,j] =1 si x[i]==x[n]
et 0 sinon
Donc une matrice symétrique. J'ai décidé de ne remplir que la partie inférieure.
J'utilise le package Matrix, comme la matrice aura beaucoup de 0.
Voici le code que j'ai fait pour le moment :
Je compte le faire pour plusieurs vecteurs x, et le souci est que n peut être très grand (entre 10 000 et 50 000). J'aimerais donc savoir s'il était possible d'optimiser ce code, ou s'il y avait un autre moyen de remplir la matrice sans boucle ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 mat <- Matrix(0,nrow=length(x),ncol=length(x)) for (i in 1:length(x)){ for (j in 1:length(x)){ if (i>j) { mat[i,j] <- x[i]==x[j] } } }
Merci de votre aide !
Partager