Как преобразовать список в матрицу в R (с примерами)


Вы можете использовать следующий синтаксис для преобразования списка в матрицу в 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 )

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: преобразование списка в матрицу (по строкам)

Следующий код показывает, как преобразовать список в матрицу (по строкам) в 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

В результате получается матрица с 5 строками и 3 столбцами.

Пример 2: преобразование списка в матрицу (по столбцам)

Следующий код показывает, как преобразовать список в матрицу (по столбцам) в 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

В результате получается матрица с 5 строками и 3 столбцами.

Предостережения по преобразованию списка в матрицу

Обратите внимание, что R выдаст ошибку, если вы попытаетесь преобразовать список в матрицу, в которой каждая позиция списка имеет разное количество элементов.

Следующий пример иллюстрирует это положение:

#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]

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные преобразования в R:

Как преобразовать список в вектор в R
Как преобразовать матрицу в вектор в R
Как преобразовать столбец фрейма данных в вектор в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.