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