Appliquer la fonction avec des arguments multiples en R

Manav Narula 21 février 2021
Appliquer la fonction avec des arguments multiples en R

Les fonctions sont essentielles dans tout langage de programmation. Une fonction est un bloc de code qui peut être appelé pour effectuer une opération spécifique dans la programmation.

Dans R, nous avons des fonctions intégrées ainsi que des fonctions définies par l’utilisateur. Nous pouvons également appliquer une fonction directement à une liste ou à un vecteur avec un ou plusieurs arguments.

Dans ce tutoriel, nous allons travailler avec les vecteurs et la fonction suivants :

f1 <- function(v1,v2){
  v1+v2
}
vec1 <- c(1,5,9)
vec2 <- c(2,7,6)

La fonction est relativement simple, elle ajoute juste deux éléments et nous avons deux vecteurs de trois éléments chacun.

Dans ce tutoriel, nous travaillerons avec les fonctions sapply(), lapply(), et les fonctions mapply(), où nous appliquerons une fonction à l’ensemble du vecteur et passerons plusieurs paramètres à celui-ci, et passerons les vecteurs à la fonction comme paramètres.

Dans les situations où nous voulons appliquer une fonction à un vecteur ou une liste donnée, nous pouvons utiliser lapply() ou sapply().

La fonction lapply() renvoie une liste comme sortie finale. Par exemple :

lapply(vec1,f1,5)
[[1]]
[1] 6

[[2]]
[1] 10

[[3]]
[1] 14
typeof(lapply(vec1,f1,5))
[1] "list"

Comme vous pouvez le voir, nous passons la fonction f1 à vec1 et nous passons un autre argument 5, puisque la fonction prend deux arguments, ce qui ajoute simplement 5 à tous les éléments.

La fonction sapply() remplit la même fonction que la fonction lapply() mais est considérée comme plus efficace des deux car elle simplifie la sortie et le résultat n’est pas nécessairement une liste.

L’extrait de code suivant montre comment :

sapply(vec1,f1,5)
[1]  6 10 14
typeof(sapply(vec1,f1,5))
[1] "double"

Une autre fonction intéressante disponible est la fonction mapply(). Elle applique une fonction à des vecteurs qui sont passés en argument. La fonction est appliquée aux premiers éléments des vecteurs, aux seconds éléments, et ainsi de suite.

mapply(f1,vec1,vec2)
[1]  3 12 15

Remarquez qu’avec la fonction mapply() nous sommes capables de passer les vecteurs comme arguments multiples à une fonction puisqu’elle renvoie la somme des éléments à la même position.

Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - R Function