J'ai un vecteur avec 49 valeurs numériques. Je veux plutôt une matrice numérique 7x7.
Puis-je utiliser une sorte d'instruction de conversion automatique pratique ou dois-je attribuer 7 colonnes séparées des sous-ensembles de vecteurs corrects à une nouvelle matrice? J'espère qu'il y a quelque chose qui ressemble à l'opposé de c(myMatrix)
, avec la possibilité de donner le nombre de lignes et/ou de colonnes que je souhaite, bien sûr.
Il suffit d'utiliser matrix
:
matrix(vec,nrow = 7,ncol = 7)
L’avantage d’utiliser matrix
plutôt que de modifier simplement l’attribut de dimension, comme le souligne Gavin, est que vous pouvez spécifier si la matrice est remplie par ligne ou par colonne en utilisant l’argument byrow
dans matrix
.
Une matrice n'est en réalité qu'un vecteur avec un attribut dim
(pour les dimensions). Vous pouvez donc ajouter des dimensions à vec
à l'aide de la fonction dim()
et vec
sera alors une matrice:
vec <- 1:49
dim(vec) <- c(7, 7) ## (rows, cols)
vec
> vec <- 1:49
> dim(vec) <- c(7, 7) ## (rows, cols)
> vec
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 8 15 22 29 36 43
[2,] 2 9 16 23 30 37 44
[3,] 3 10 17 24 31 38 45
[4,] 4 11 18 25 32 39 46
[5,] 5 12 19 26 33 40 47
[6,] 6 13 20 27 34 41 48
[7,] 7 14 21 28 35 42 49