Come convertire una lista in un vettore in r (con esempi)


È possibile utilizzare uno dei seguenti metodi per convertire un elenco in un vettore in R:

 #use unlist() function
new_vector <- unlist(my_list, use. names = FALSE )

#use flatten_*() function from purrr library
new_vector <- purrr::flatten(my_list)

I seguenti esempi mostrano come utilizzare nella pratica ciascuno di questi metodi con il seguente elenco:

 #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

Esempio 1: convertire una lista in vettore utilizzando la funzione unlist()

Il codice seguente mostra come convertire una lista in un vettore utilizzando la funzione 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 

Tieni presente che puoi specificare use.names = FALSE per rimuovere i nomi dal vettore:

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

#display vector
new_vector

[1] 1 2 3 4 5 6

Esempio 2: convertire un elenco in vettore utilizzando la funzione flatten_*

Il codice seguente mostra come convertire una lista in un vettore utilizzando la famiglia di funzioni flatten_* del pacchetto purrr :

 library (purrr)

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

#display vector
new_vector

[1] 1 2 3 4 5 6

La funzione flatten_dbl() converte specificamente la lista in un vettore di tipo double.

Nota che potremmo usare flatten_chr() per convertire un elenco di caratteri in un vettore di caratteri:

 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"

Vedi questa pagina per un elenco completo della famiglia di funzioni flatten_*.

Nota: se stai lavorando con un elenco estremamente lungo, le funzioni flatten_* funzioneranno più velocemente della funzione unlist() di base R.

Risorse addizionali

Come convertire una lista in un frame di dati in R
Come convertire la matrice in vettore in R
Come convertire la colonna del frame di dati in un vettore in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *