Comment convertir une liste en vecteur dans R (avec exemples)



Vous pouvez utiliser l’une des méthodes suivantes pour convertir une liste en vecteur dans R :

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

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

Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec la liste suivante :

#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

Exemple 1 : Convertir une liste en vecteur à l’aide de la fonction unlist()

Le code suivant montre comment convertir une liste en vecteur à l’aide de la fonction 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 

Notez que vous pouvez spécifier use.names = FALSE pour supprimer les noms du vecteur :

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

#display vector
new_vector

[1] 1 2 3 4 5 6

Exemple 2 : convertir une liste en vecteur à l’aide de la fonction flatten_*

Le code suivant montre comment convertir une liste en vecteur à l’aide de la famille de fonctions flatten_* du package 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 fonction flatten_dbl() convertit spécifiquement la liste en un vecteur de type double.

Notez que nous pourrions utiliser flatten_chr() pour convertir une liste de caractères en vecteur de type caractère :

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"

Consultez cette page pour une liste complète de la famille de fonctions flatten_*.

Remarque : Si vous travaillez avec une liste extrêmement longue, les fonctions flatten_* fonctionneront plus rapidement que la fonction unlist() de la base R.

Ressources additionnelles

Comment convertir une liste en un bloc de données dans R
Comment convertir une matrice en vecteur dans R
Comment convertir une colonne de bloc de données en vecteur dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *