R : Comment utiliser la fonction lapply() avec plusieurs arguments



La fonction lapply() dans R peut être utilisée pour appliquer une fonction à chaque élément d’une liste, d’un vecteur ou d’un bloc de données et obtenir une liste en conséquence.

Pour utiliser la fonction lapply() avec plusieurs arguments, vous pouvez utiliser la syntaxe de base suivante :

#define function
my_function <- function(var1,var2,var3){
  var1*var2*var3
}

#apply function to list using multiple arguments
lapply(my_list, my_function, var2=3, var3=5)

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Comment utiliser lapply() avec plusieurs arguments dans R

Supposons que nous ayons la liste suivante dans R :

#create a list
my_list <- list(A=1, B=2, C=3, D=4)

#view list
my_list

$A
[1] 1

$B
[1] 2

$C
[1] 3

$D
[1] 4

Le code suivant définit une fonction qui accepte trois variables et multiplie les trois variables ensemble, puis utilise la fonction lapply() pour appliquer cette fonction à chaque valeur de notre liste :

#define function
my_function <- function(var1,var2,var3){
  var1*var2*var3
}

#apply function to list using multiple arguments
lapply(my_list, my_function, var2=3, var3=5)

$A
[1] 15

$B
[1] 30

$C
[1] 45

$D
[1] 60

Notez que la fonction lapply() multiplie chaque valeur de la liste par 3 puis par 5.

Par exemple:

  • Première valeur de la liste : 1 * 3 * 5 = 15
  • Deuxième valeur de la liste : 2 * 3 * 5 = 30
  • Troisième valeur de la liste : 3 * 3 * 5 = 45
  • Quatrième valeur de la liste : 4 * 3 * 5 = 60

En utilisant une syntaxe similaire, vous pouvez fournir autant d’arguments que vous le souhaitez à la fonction lapply() .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment appliquer une fonction à chaque ligne de trame de données dans R
Comment utiliser la fonction colSums() dans R
Comment utiliser la fonction rowSums() dans R

Ajouter un commentaire

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