Bonjour,
Comment créer une matrice de matrices ? Par exemple une matrice 6x6 formée des couples de nombres obtenus lors du lancer simultané de 2 dés.
Bonne soirée à tous !
Version imprimable
Bonjour,
Comment créer une matrice de matrices ? Par exemple une matrice 6x6 formée des couples de nombres obtenus lors du lancer simultané de 2 dés.
Bonne soirée à tous !
Je ne suis pas sur que tu puisse créer des matrices de matrices sous R. Tu peux faire des matrices par contre de dimension 2n*2m ou des data frame. Le problème que tu vas rencontrer pour les data frame, c'est comment les remplir. Pour cela tu as les deux fonctions rbind et cbind.
Exemple :
dans cette exemple tu obtiens une matrice m, et une data frame de type :Code:
1
2 m<-matrix(1:10, nrow = 5, ncol = 2) cbind(rbind(m,m), rbind(m,m))
mm
mm
Cela répond a ta demande ?
Cordialement.
Je ne crois pas que ça me fournisse une réponse. Je voudrais obtenir quelque chose comme ceci :
[1 1][2 1][3 1][4 1][5 1][6 1]
[1 2][2 2][3 2][4 2][5 2][6 2]
[1 3][2 3][3 3][4 3][5 3][6 3]
[1 4][2 4][3 4][4 4][5 4][6 4]
[1 5][2 5][3 5][4 5][5 5][6 5]
[1 6][2 6][3 6][4 6][5 6][6 6]
Cordialement
Salut,
Pour avoir des couples commes élements de ta matrice le moyen le plus simple est à mon avis de transformer ces couples en caractère ou en facteur avec une saisie harmonisée pour pouvoir en reextraire facilement le couple en numérique.
Avec l'exemple des dés, le couple peut très facilement être transposé de caractère à numerique puisque tu as toujours un chiffre, un blanc et un chiffre.
Exemple de code:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 de1<-1:6 de2<-1:6 data<-expand.grid(de1,de2) data<-data[!duplicated(data[,1:2]),] couple<-paste(data[,1],data[,2]) #création de la matrice 6*6 des couples de dés possibles matrice<-matrix(couple,length(de1),length(de2)) #acceder au premier element du couple de la matrice aux indices 2,3 as.numeric(substr(matrice[2,3],1,1))
Edit:
bon je voullais pas t'orienter vers les listes parce que la syntaxe est plus galère je trouve, mais après reflexion si jamais tu as des elements plus compliqués que juste un couple, tu peux passer par des listes.
Pour l'exemple des dés, tu créés une liste de listes de couples de ce genre:
Après c'est clairement plus galère, question de goût aussi.Code:liste<-list(list(numeric(2)))
Merci beaucoup, c'est super ! La ligne data<-data[!duplicated(data[,1:2]),] est-elle vraiment utile ?
Encore une question (je débute, alors si j'abuse pas besoin de répondre :-) :
avec liste<-list(list(numeric(2))), j'obtiens pour
ce qui me paraît indéchiffrable...Code:
1
2
3
4 >liste [[1]] [[1]][[1]] [1] 0 0
et si je fais : m<-matrix(liste,6,6)alors :
Ces 'List,1' me paraissent tomber d'on ne sait où !Code:
1
2
3
4
5
6
7
8 > m [,1] [,2] [,3] [,4] [,5] [,6] [1,] List,1 List,1 List,1 List,1 List,1 List,1 [2,] List,1 List,1 List,1 List,1 List,1 List,1 [3,] List,1 List,1 List,1 List,1 List,1 List,1 [4,] List,1 List,1 List,1 List,1 List,1 List,1 [5,] List,1 List,1 List,1 List,1 List,1 List,1 [6,] List,1 List,1 List,1 List,1 List,1 List,1
Encore merci !
C'est juste pour éviter d'avoir deux fois les couples de la diagonale de la matrice.
Le point important qui repond à ton problème c'est surtout de concatener les deux chiffres de chaque couple avec un paste, le reste du code c'est juste pour reproduire la même matrice que toi ^^
L'exemple que je donnais c'était juste pour montrer la tête de la structure si tu passais par des listes, je n'avais rien rempli dedans.Citation:
Encore une question (je débute, alors si j'abuse pas besoin de répondre :-) :
avec liste<-list(list(numeric(2)))
et si je fais : m<-matrix(liste,6,6)
En fait oublie ce que j'ai dis dans mon edit sur les listes, ca va juste t'embrouiller plus qu'autre chose et ca ne te sera pas d'une grande utilité pour ce que tu veux faire je pense.