Come convertire una lista in una matrice in r (con esempi)
È possibile utilizzare la seguente sintassi per convertire un elenco in una matrice in 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 )
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio 1: convertire una lista in una matrice (per righe)
Il codice seguente mostra come convertire una lista in una matrice (per righe) in 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
Il risultato è una matrice di 5 righe e 3 colonne.
Esempio 2: convertire una lista in una matrice (per colonne)
Il codice seguente mostra come convertire un elenco in una matrice (per colonne) in 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
Il risultato è una matrice di 5 righe e 3 colonne.
Precauzioni per convertire una lista in un array
Nota che R genererà un errore se tenti di convertire una lista in una matrice in cui ciascuna posizione nella lista non ha lo stesso numero di elementi.
Il seguente esempio illustra questo punto:
#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]
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre conversioni comuni in R:
Come convertire una lista in un vettore in R
Come convertire la matrice in vettore in R
Come convertire la colonna del frame di dati in un vettore in R