Comment convertir une liste en matrice dans R (avec exemples)



Vous pouvez utiliser la syntaxe suivante pour convertir une liste en matrice dans R :

#convert list to matrix (by row)
matrix(unlist(my_list), ncol=3, byrow=TRUE)

#convert list to matrix (by column)
matrix(unlist(my_list), ncol=3)

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.

Exemple 1 : Convertir une liste en matrice (par lignes)

Le code suivant montre comment convertir une liste en matrice (par lignes) dans R :

#create list
my_list <- list(1:3, 4:6, 7:9, 10:12, 13:15)

#view list
my_list

[[1]]
[1] 1 2 3

[[2]]
[1] 4 5 6

[[3]]
[1] 7 8 9

[[4]]
[1] 10 11 12

[[5]]
[1] 13 14 15

#convert list to matrix
matrix(unlist(my_list), ncol=3, byrow=TRUE)

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
[4,]   10   11   12
[5,]   13   14   15

Le résultat est une matrice de 5 lignes et 3 colonnes.

Exemple 2 : Convertir une liste en matrice (par colonnes)

Le code suivant montre comment convertir une liste en matrice (par colonnes) dans R :

#create list
my_list <- list(1:5, 6:10, 11:15)

#view list
my_list

[[1]]
[1] 1 2 3 4 5

[[2]]
[1]  6  7  8  9 10

[[3]]
[1] 11 12 13 14 15

#convert list to matrix
matrix(unlist(my_list), ncol=3)

     [,1] [,2] [,3]
[1,]    1    6   11
[2,]    2    7   12
[3,]    3    8   13
[4,]    4    9   14
[5,]    5   10   15

Le résultat est une matrice de 5 lignes et 3 colonnes.

Précautions concernant la conversion d’une liste en matrice

Notez que R générera une erreur si vous tentez de convertir une liste en une matrice dans laquelle chaque position de la liste n’a pas le même nombre d’éléments.

L’exemple suivant illustre ce point:

#create list
my_list <- list(1:5, 6:10, 11:13)

#view list
my_list

[[1]]
[1] 1 2 3 4 5

[[2]]
[1]  6  7  8  9 10

[[3]]
[1] 11 12 13

#attempt to convert list to matrix
matrix(unlist(my_list), ncol=3)

Warning message:
In matrix(unlist(my_list), ncol = 3) :
  data length [13] is not a sub-multiple or multiple of the number of rows [5]

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres conversions courantes dans R :

Comment convertir une liste en vecteur dans R
Comment convertir une matrice en vecteur dans R
Comment convertir une colonne de bloc de données en vecteur dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *