R Listes

Une liste est une collection d'objets dans le langage R, qui peut être utilisée pour stocker différents types de données, y compris des nombres, des chaînes de caractères, des vecteurs, une autre liste, une matrice, un tableau de données, etc., et bien sûr elle peut aussi contenir des matrices et des fonctions.

Une liste est une structure de données flexible qui peut stocker et manipuler divers types d'objets de données.

Création de listes

To create a list in R language, use thelist().

Dans l'exemple suivant, nous créons une liste contenant des chaînes de caractères, des vecteurs et des nombres :

Exemple

list_data <- list("example", "google", c(11,22,33), 123, 51.23, 119.1)
print(list_data)

L'exécution du code ci-dessus produit la sortie suivante :

[[1]]
[1] "example"

[[2]]
[1] "google"

[[3]]
[1] 11 22 33

[[4]]
[1] 123

[[5]]
[1] 51.23

[[6]]
[1] 119.1

We can also use thec()fonction pour créer des listes, et nous pouvons également utiliser cette fonction pour fusionner plusieurs objets en une seule liste, par exemple :

my_list <- c(object1, object2, object3)

Exemple

# Créer un vecteur contenant des nombres
numbers <- c(1, 2, 3, 4, 5)

# Créer un vecteur contenant des caractères
characters <- c("apple", "banana", "orange")


# Fusionner deux vecteurs numériques
merged_vector <- c(numbers, c(6, 7, 8))

# Fusionner deux vecteurs de caractères
merged_characters <- c(characters, c("grape", "melon"))

Nous pouvons utiliser la fonctionnames()pour nommer les éléments d'une liste :

Exemple

# La liste contient un vecteur, une matrice et une liste
list_data <- list(c("Google","Example","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("example",12.3))

# Définir les noms des éléments de la liste
names(list_data) <- c("Sites", "Numbers", "Lists")

# Afficher la liste
print(list_data)

L'exécution du code ci-dessus produit la sortie suivante :

$Sites
[1] "Google" "Example" "Taobao"

$Numbers
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

$Lists
$Lists[[1]]
[1] "example"

$Lists[[2]]
[1] 12.3

Accès aux listes

Les éléments d'une liste sont accessibles à l'aide d'indices. Si vous utilisez la fonctionnames()pour les nommer, nous pouvons également y accéder en utilisant les noms correspondants :

Exemple

# La liste contient un vecteur, une matrice et une liste
list_data <- list(c("Google","Example","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("example",12.3))

# Définir les noms des éléments de la liste
names(list_data) <- c("Sites", "Numbers", "Lists")

# Afficher la liste
print(list_data[1])

# Accéder au troisième élément de la liste
print(list_data[3])

# Accéder au premier élément du vecteur
print(list_data$Numbers)

L'exécution du code ci-dessus produit la sortie suivante :

$Sites
[1] "Google" "Example" "Taobao"

$Lists
$Lists[[1]]
[1] "example"

$Lists[[2]]
[1] 12.3


     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

Manipulation des éléments d'une liste

Nous pouvons ajouter, supprimer et mettre à jour des éléments d'une liste, comme le montre l'exemple suivant :

Exemple

# La liste contient un vecteur, une matrice et une liste
list_data <- list(c("Google","Example","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("example",12.3))

# Définir les noms des éléments de la liste
names(list_data) <- c("Sites", "Numbers", "Lists")

# Ajouter un élément
list_data[4] <- "New element"
print(list_data[4])

# Supprimer un élément
list_data[4] <- NULL

# La sortie après suppression est NULL
print(list_data[4])

# Mettre à jour un élément
list_data[3] <- "J'ai remplacé le troisième élément"
print(list_data[3])

L'exécution du code ci-dessus produit la sortie suivante :

[[1]]
[1] "新元素"

$<NA>
NULL

$Lists
[1] "我替换来第三个元素"

Utilisation de la boucleforpour parcourir une liste :

Exemple

# Créer une liste contenant des nombres et des caractères
my_list <- list(1, 2, 3, "a", "b", "c")

# Utiliser une boucle for pour parcourir chaque élément de la liste
for (element in my_list) {
  print(element)
}

Dans le code ci-dessus, la boucle for parcourt chaque élément de la liste my_list dans l'ordre et stocke chaque élément dans la variable element. Ensuite, nous pouvons effectuer des opérations spécifiques sur chaque élément dans le corps de la boucle, comme utiliser la fonction print() pour afficher la valeur de element.

Lors de l'itération sur une liste avec une boucle for, chaque itération affecte l'élément courant à la variable element. Par conséquent, dans le corps de la boucle, vous pouvez effectuer toute opération requise sur element, comme des calculs, des vérifications conditionnelles, etc.

Notez que lors de l'itération sur une liste avec une boucle for, la variable de boucle element prendra successivement chaque élément de la liste, mais elle ne peut pas modifier directement l'élément de liste lui-même. Si vous devez modifier la valeur d'un élément de la liste, vous pouvez le faire par indexation, par exemplemy_list[[index]] <- new_value。

L'exécution du code ci-dessus produit la sortie suivante :

[1] 1
[1] 2
[1] 3
[1] "a"
[1] "b"
[1] "c"

Fusion de listes

Nous pouvons utiliser lac()fonction pour fusionner plusieurs listes en une seule liste :

Exemple

# Créer deux listes
list1 <- list(1,2,3)
list2 <- list("Google","Example","Taobao")

# Fusionner les listes
merged.list <- c(list1,list2)

# Afficher la liste fusionnée
print(merged.list)

L'exécution du code ci-dessus produit la sortie suivante :

[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] "Google"

[[5]]
[1] "Example"

[[6]]
[1] "Taobao"

Conversion de listes en vecteurs

Pour convertir une liste en vecteur, vous pouvez utiliser la fonctionunlist(). Convertir une liste en vecteur nous permet d'effectuer facilement des opérations arithmétiques :

Exemple

# Créer une liste
list1 <- list(1:5)
print(list1)

list2 <-list(10:14)
print(list2)

# Convertir en un vecteur
v1 <- unlist(list1)
v2 <- unlist(list2)

print(v1)
print(v2)

# Ajouter deux vecteurs
result <- v1+v2
print(result)

L'exécution du code ci-dessus produit la sortie suivante :

[[1]]
[1] 1 2 3 4 5

[[1]]
[1] 10 11 12 13 14

[1] 1 2 3 4 5
[1] 10 11 12 13 14
[1] 11 13 15 17 19

Résumé

Voici quelques opérations et fonctions couramment utilisées sur les listes du langage R :

Création de listes :

  • En utilisant lac()fonction : par exemple, list1 <- c(1, 2, 3) crée une liste contenant 1, 2 et 3.
  • En utilisant lafonction list(): par exemple, list2 <- list(1, "a", TRUE) crée une liste contenant des éléments de types différents.

Accès aux éléments d'une liste :

  • Utilisation des indices : accédez aux éléments d'une liste par index. Par exemple, list1
  • Utilisation des noms d'éléments : si les éléments d'une liste ont des noms, vous pouvez utiliser les noms pour y accéder. Par exemple, avec list3 <- list(a = 1, b = 2), vous pouvez accéder aux éléments via list3$a et list3$b.

Opérations sur les listes :

  • Longueur : utilisez la fonction length() pour obtenir la longueur d'une liste. Par exemple, length(list1) renvoie la longueur de la liste list1.
  • Fusion : utilisez la fonction c() ou la fonction append() pour fusionner deux ou plusieurs listes en une seule liste. Par exemple, list4 <- c(list1, list2) fusionne les listes list1 et list2.
  • Ajout d'éléments : utilisez la fonction c() pour ajouter un élément à une liste existante. Par exemple, list1 <- c(list1, 4) ajoute 4 à la fin de la liste list1.
  • Suppression d'éléments : utilisez les indices et l'opérateur d'index négatif - pour supprimer des éléments d'une liste. Par exemple, list1 <- list1[-2] supprime le deuxième élément de la liste list1.

Itération sur une liste :

  • boucle for : utilisez une boucle for pour parcourir les éléments d'une liste. Par exemple,for (element in list1) { ... }parcourt chaque élément de la liste list1.
  • lapply()fonction lapply() : applique une fonction à chaque élément d'une liste et renvoie une liste de résultats. Par exemple, new_list <- lapply(list1, function(x) x * 2) multiplie chaque élément de la liste list1 par 2.
Autres extensions