Lapply Sous R
La fonction apply() permet d'appliquer une fonction (par exemple une moyenne, une somme) à chaque ligne ou chaque colonne d'un tableau de données. Cette fonction prend 3 arguments dans l'ordre suivant: nom du tableau de données un nombre pour dire si la fonction doit s'appliquer aux lignes (1), aux colonnes (2) ou aux deux (c(1, 2)) le nom de la fonction à appliquer Voici un exemple. L'objectif est de calculer la somme de chaque ligne ou de chaque colonne d'un tableau: # On crée d'abord une matrice avec 2 lignes et 3 colonnes data<-matrix(c(1, 2, 3, 4, 5, 6), nrow=2) # On donne un nom aux lignes et aux colonnes colnames(data)=c("C1", "C2", "C3") rownames(data)=c("L1", "L2") # On utilise la fonction apply() pour faire la somme de chaque ligne apply(data, 1, sum) # Pour faire la somme de chaque colonne, on remplace 1 par 2 apply(data, 2, sum)
Lapply Sous Réserve
Nous comparons les deux résultats avec la fonction identical(). below_ave <- function(x) { ave <- mean(x) return(x)}dt_s<- sapply(dt, below_ave)dt_l<- lapply(dt, below_ave)identical(dt_s, dt_l) ## TRUE Fonction tapply() tapply() calcule une mesure (moyenne, médiane, min, max, etc…) ou une fonction pour chaque variable facteur dans un vecteur. C'est une fonction très utile qui vous permet de créer un sous-ensemble d'un vecteur, puis d'appliquer certaines fonctions à chacun de ce sous-ensemble. Une partie du travail d'un data scientist ou de chercheurs consiste à calculer des résumés de variables. Par exemple, mesurer la moyenne ou regrouper des données en fonction d'une caractéristique. La plupart des données sont regroupées par ID, ville, pays, etc. Le fait de résumer par groupe révèle des modèles plus intéressants. Pour comprendre comment cela fonctionne, utilisons le jeu de données de l'iris. Lapply sous l'arbre. Ce dataset est très célèbre dans le monde de l'apprentissage automatique. Le but de ce dataset est de prédire la classe de chacune des trois espèces de fleurs: Sepal, Versicolor, Virginica.
Lapply Sous L'arbre
936 ## iris$Species: virginica ## [1] 6. 588 On peut aussi employer cette syntaxe: with(iris, tapply(, Species, mean)) ## 5. 588 Et comme précédemment, si la fonction employée nécessite des arguments supplémentaires, on les ajoute après la virgule: res <- with(iris, tapply(, Species, quantile, probs=c(0. 75))) ## $setosa ## 4. 8 5. 2 ## $versicolor ## 5. 6 6. 3 ## $virginica ## 6. Mémo sur les fonctions lapply, sapply, tapply, apply - DellaData. 225 6. 900 ## [1] "array" La fonction apply permet d'appliquer une fonction sur toutes les lignes ou toutes les colonnes d'un data frame (ou une matrice). Si on souhaite appliquer la fonction sur les lignes, on va spécifier l'argument MARGIN=1 (en pratique, on utilise que le 1 en second argument de la fonction). De la même manière, si on souhaite appliquer la fonction sur les colonnes, on va spécifier l'argument MARGIN=2 (là encore, en pratique, on utilise que le 2 en second argument de la fonction) Par exemple ici, si on souhaite faire la moyenne des 4 premières variables du jeu de données iris, sur les 10 premières lignes: res <- apply(iris[1:10, 1:4], 1, mean, ) ## 1 2 3 4 5 6 7 8 9 10 ## 2.
Lapply Sous L'oeil
Aymeric Inpong" Bonjour Claire, Je profite régulièrement de vos articles pour améliorer ma programmation en R (plutôt artisanale) d'analyses multivariées. J'utilise des boucles, doubles ou triples, ce qui entraîne de long calculs.
La famille des fonctions apply est intégrée dans le package base déjà chargé en mémoire dans RStudio. Ces fonctions évitent d'avoir recours aux boucles. Dans ce TP, nous aborderons uniquement les fonctions apply, lapply et tapply. Mais, il en existe d'autres telles que sapply, mapply, vapply, etc. Fonction apply La fonction apply est la fonction de base des fonctions de cette famille. Elle est utile pour appliquer une fonction sur chaque colonne d'une matrice. L'argument MARGIN permet de préciser si on veut appliquer la fonction mean pour chaque ligne ou chaque colonne. Ici l'objet X convertit le data frame en matrice, c'est pourquoi la fonction apply renvoie que des vecteurs de type character. apply ( X = iris, MARGIN = 2, FUN = class) ## Species ## "character" "character" "character" "character" "character" apply ( X = iris[, 1: 4], MARGIN = 2, FUN = mean) ## ## 5. 843333 3. 057333 3. Titre d'un graphique appelé par fonction et lapply - Groupe des utilisateurs du logiciel R. 758000 1. 199333 Fonction lapply La fonction lapply se construit de la même façon que la fonction apply à l'exception que le résultat renvoyé est une liste La fonction lapply prend en entrée une liste, un vecteur ou un data frame / matrice contrairement à la fonction apply.