Вы можете использовать один из следующих методов для преобразования списка в вектор в R:
#use unlist() function
new_vector <- unlist(my_list, use. names = FALSE )
#use flatten_\*() function from purrr library
new_vector <- purrr::flatten(my_list)
В следующих примерах показано, как использовать каждый из этих методов на практике со следующим списком:
#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
Пример 1. Преобразование списка в вектор с помощью функции unlist()
В следующем коде показано, как преобразовать список в вектор с помощью функции 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. Преобразование списка в вектор с помощью функции flatten_*
В следующем коде показано, как преобразовать список в вектор с помощью семейства функций flatten_* из пакета purrr :
library (purrr)
#convert list to vector
new_vector <- flatten_dbl(my_list)
#display vector
new_vector
[1] 1 2 3 4 5 6
Функция flatten_dbl() специально преобразует список в вектор типа double.
Обратите внимание, что мы могли бы использовать flatten_chr() для преобразования списка символов в вектор символьного типа:
library (purrr)
#define character list
my_char_list <- list(A = c('a', 'b', 'c'),
B = c('d', 'e'),
C = 'f')
#convert character list to character vector
new_char_vector <- flatten_chr(my_char_list)
#display vector
new_char_vector
[1] "a" "b" "c" "d" "e" "f"
На этой странице вы найдете полный список функций семейства flatten_*.
Примечание. Если вы работаете с очень большим списком, функции flatten_* будут выполняться быстрее, чем функция unlist() из базы R.
Дополнительные ресурсы
Как преобразовать список во фрейм данных в R
Как преобразовать матрицу в вектор в R
Как преобразовать столбец фрейма данных в вектор в R