Как преобразовать список в вектор в r (с примерами)
Вы можете использовать любой из следующих методов для преобразования списка в вектор в 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_* будут работать быстрее, чем базовая функция R unlist().
Дополнительные ресурсы
Как преобразовать список в фрейм данных в R
Как преобразовать матрицу в вектор в R
Как преобразовать столбец фрейма данных в вектор в R