web-dev-qa-db-fra.com

R remodeler un vecteur en plusieurs colonnes

Disons que j'ai un vecteur dans R comme suit:

d<-seq(1,100)

Je veux remodeler ce vecteur en une matrice 10x10, afin d'avoir à la place ces données:

[,1]  [,2]  [,3]  ..  [,10]   
  1      2    3   ..   10
  11    12   13   ..   20
  21    22   23   ..   30
  ..
  91    92   93    ..  100

J'ai essayé d'utiliser la fonction de remodelage, mais cela n'a pas fonctionné. Quelqu'un peut-il aider s'il vous plaît?

18
Vahid Mirjalili

Tu peux faire

dim(d) <- c(10, 10)
d <- t(d)

ou

d <- matrix(d, nrow = 10, byrow = TRUE)
38
flodel

Si vous souhaitez convertir une liste prédéfinie en matrice (par exemple, une matrice 5 * 4), faites

yourMatrix <- matrix(unlist(yourList), nrow = 5, ncol = 4)

Il convient de noter que la matrice est créée par des colonnes, ce qui signifie que vos données seront remplies dans la matrice par des colonnes. Donc, si vous voulez la matrice créée par des lignes, utilisez simplement t () , comme

yourMatrix <- matrix(unlist(yourList), nrow = 4, ncol = 5)  # exchanges the cols and rows
yourMatrix <- t(yourMatrix)  # matrix transpose
1
jared