Comment utiliser la fonction map() dans R (avec exemples)



La fonction map() du package purrr dans R peut être utilisée pour appliquer une fonction à chaque élément d’un vecteur ou d’une liste et renvoyer une liste en conséquence.

Cette fonction utilise la syntaxe de base suivante :

carte(.x, .f)

où:

  • .x : Un vecteur ou une liste
  • .f : Une fonction

Les exemples suivants montrent comment utiliser cette fonction dans différents scénarios.

Exemple 1 : utilisez map() pour générer des variables aléatoires

Le code suivant montre comment utiliser la fonction map() pour générer trois variables aléatoires contenant chacune cinq valeurs qui suivent une distribution normale standard :

library(purrr)

#define vector
data <- 1:3

#apply rnorm() function to each value in vector
data %>%
  map(function(x) rnorm(5, x))

[[1]]
[1] 0.0556774 1.8053082 2.6489861 2.2640136 1.1062672

[[2]]
[1] 1.450175 1.123048 3.413677 3.055304 2.713801

[[3]]
[1] 2.936732 2.157129 3.693738 2.994391 2.567040

Pour chaque élément du vecteur d’origine, la fonction map() a appliqué la fonction rnorm() pour générer cinq valeurs aléatoires provenant d’une distribution normale standard .

Exemple 2 : utilisez map() pour transformer chaque valeur en un vecteur

Le code suivant montre comment utiliser la fonction map() pour calculer le carré de chaque valeur dans un vecteur :

library(purrr)

#define vector
data <- c(2, 4, 10, 15, 20)

#calculate square of each value in the vector
data %>%
  map(function(x) x^2)

[[1]]
[1] 4

[[2]]
[1] 16

[[3]]
[1] 100

[[4]]
[1] 225

[[5]]
[1] 400

Pour chaque élément du vecteur d’origine, la fonction map() appliquait une fonction qui calculait le carré de chaque valeur.

Exemple 3 : utilisez map() pour calculer la moyenne de chaque vecteur de la liste

Le code suivant montre comment utiliser la fonction map() pour calculer la valeur moyenne de chaque vecteur d’une liste :

library(purrr)

#define list of vectors
data <- list(c(1, 2, 3),
             c(4, 5, 6),
             c(7, 8, NA))

#calculate mean value of each vector in list
data %>%
  map(mean, na.rm=TRUE)

[[1]]
[1] 2

[[2]]
[1] 5

[[3]]
[1] 7.5

Pour chaque vecteur de la liste, la fonction map() calcule la valeur moyenne.

À partir du résultat, nous pouvons voir :

  • La valeur moyenne du premier vecteur de la liste est 2 .
  • La valeur moyenne du deuxième vecteur de la liste est 5 .
  • La valeur moyenne du troisième vecteur de la liste est 7,5 .

Remarque : L’argument na.rm=TRUE indique à R d’ignorer les valeurs NA lors du calcul de la moyenne.

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment utiliser la fonction tapply() dans R
Comment utiliser la fonction dim() dans R
Comment utiliser la fonction table() dans R
Comment utiliser la fonction sign() dans R

Ajouter un commentaire

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