Как использовать функцию unlist() в R (3 примера)


Вы можете использовать функцию unlist() в R, чтобы быстро преобразовать список в вектор.

Эта функция использует следующий базовый синтаксис:

unlist(x)

куда:

  • x : имя объекта R

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

Пример 1: Используйте unlist() для преобразования списка в вектор

Предположим, у нас есть следующий список в R:

#create list
my_list <- list(A = c(1, 2, 3),
 B = c(4, 5),
 C = 6)

#display list
my_list

$A
[1] 1 2 3

$B
[1] 4 5

$C
[1] 6

В следующем коде показано, как преобразовать список в вектор с помощью функции unlist() :

#convert list to vector
new_vector <- unlist(my_list)

#display vector
new_vector

A1 A2 A3 B1 B2 C 
 1 2 3 4 5 6

Обратите внимание, что вы можете указать use.names = FALSE , чтобы удалить имена из вектора:

#convert list to vector
new_vector <- unlist(my_list, use. names = FALSE )

#display vector
new_vector

[1] 1 2 3 4 5 6

Пример 2: Используйте unlist() для преобразования списка в матрицу

В следующем коде показано, как использовать unlist() для преобразования списка в матрицу:

#create list
my_list <- list(1:3, 4:6, 7:9, 10:12, 13: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

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

Пример 3: Используйте unlist() для сортировки значений в списке

Предположим, у нас есть следующий список в R:

#create list
some_list <- list(c(4, 3, 7), 2, c(5, 12, 19)) 

#view list
some_list

[[1]]
[1] 4 3 7

[[2]]
[1] 2

[[3]]
[1] 5 12 19

Теперь предположим, что мы пытаемся отсортировать значения в списке:

#attempt to sort the values in the list
sort(some_list)

Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : 
 'x' must be atomic

Мы получаем ошибку, потому что список должен быть сначала преобразован в вектор, чтобы мы могли отсортировать значения.

Мы можем использовать следующую функцию unlist() для сортировки значений:

#sort values in list
sort(unlist(some_list))

[1] 2 3 4 5 7 12 19

Обратите внимание, что мы можем успешно отсортировать список значений без каких-либо ошибок, потому что мы сначала использовали unlist() , который преобразовал список в числовой вектор.

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

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

Как использовать функцию length() в R
Как использовать функцию cat() в R
Как использовать функцию substring() в R