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. Lapply sous r la publication. 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. 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.
- Lapply sous r rambaud
- Lapply sous r la publication
- Lapply sous réserve
- Elevage la gentiane des neiges ii
Lapply Sous R Rambaud
Quelqu'un sait-il comment faire ceci? En vous remerciant de votre attention
Matthieu FARON
Aline Deschamps
Messages: 133 Enregistré le: 11 Mai 2010, 07:49
Contact:
Message par Aline Deschamps » 21 Fév 2011, 15:38
Peut-être qu'un code réproductible et minimal serait le bienvenu ici. En effet, en ce qui me concerne je ne vois pas bien à quel moment vous faîtes appel au lapply (la commande paste est-elle incluse dans la fonction utilisée dans le lapply? ). Cordialement,
A. D. Message par matthieu faron » 21 Fév 2011, 15:49
Merci de votre réponse. Voici le code en question:
Code: Tout sélectionner #la fonction uni1 <- function(var) { survie <- survfit(Surv(delaios, status) ~ var, data=don) lr <- survdiff(Surv(delaios, status) ~ var, data=don) test <- round(pchisq(lr$chisq, df = (dim(lr$n)-1), ), 5) out <- list("Survie"=survie, "Log Rank"=test) if (test<0. 05) { survplot(survie) titre <- paste("Overall Survival:", substitute(var)) print(titre) text(titre[3], xpd=T, x=12, y=1. Comment appliquer une fonction à une liste ? : lapply ; sapply ? - Astuces et scripts R. 1, font=2)} return(out)} # l'appel à lapply lapply(listuni1, FUN=uni1) # la liste (enfin le debut) listuni1 <- list("Site du primitif" = don$primsite, "Loc double" = don$pdouble,... )
En vous remerciant à nouveau pour votre attention
Logez Maxime
Messages: 3061 Enregistré le: 26 Sep 2006, 11:35
Message par Logez Maxime » 21 Fév 2011, 16:06
enlève le substitute et ça devrait fonctionner.
lapply ( X = iris, function (x) class (x))
## $
## [1] "numeric"
## $Species
## [1] "factor"
lapply ( X = colnames (iris), function (x) summary (iris[, x]))
## [[1]]
## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 4. 300 5. 100 5. 800 5. 843 6. 400 7. 900
## [[2]]
## 2. 000 2. 800 3. 000 3. 057 3. 300 4. 400
## [[3]]
## 1. 000 1. 600 4. 350 3. 758 5. 100 6. 900
## [[4]]
## 0. 100 0. 300 1. 199 1. 800 2. 500
## [[5]]
## setosa versicolor virginica
## 50 50 50
Quand on regarde de plus près, on se rend compte, que ces fonctions peuvent jouer le même rôle qu'une boucle. lapply ( X = colnames (iris), function (x) x)
## [1] ""
## [1] "Species"
Fonction sapply
La fonction sapply est similaire à la fonction lapply sauf qu'elle ne retourne pas de liste mais un vecteur ou une matrice. Lapply sous r rambaud. sapply ( X = iris, function (x) class (x))
## "numeric" "numeric" "numeric" "numeric" "factor"
Fonction tapply
La fonction tapply adopte la même approche que la fonction aggregate. Elle permet d'agréger des données. Les arguments de la fonction d'agrégation sont renseignés dans la fonction tapply et non dans la fonction d'agrégation.
Lapply Sous R La Publication
Tout le code que tu as utilisé peut-être simplifier par le code suivant: Code: Tout sélectionner numero <- meric(gsub("\\D", "", deparse(substitute(var)), perl=T)) Maxime
Message par matthieu faron » 22 Fév 2011, 10:06
J'avais donc mal compris le code que tu m'a donné. Maintenant tout marche parfaitement,
Retourner vers « Questions en cours »
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invité
Dans l'exemple que tu a pris c'est déjà une utilisation plus complexe de sapply puisqu'il est imbriqué dans une fonction. IL y a plus simple pour comprendre le fonctionnement. Par exemple, crée toi une liste de vecteur et tu pourras tenter la commande: ou encore sur un tableau de donnée (un est une liste) si tu fais la même commande qu'au dessus tu auras la moyenne par colonne. Je ne vois pas quoi te dire de plus pour le moment. :)
jean lobry
Messages: 722 Enregistré le: 17 Jan 2008, 20:00
Contact:
Message par jean lobry » 13 Oct 2008, 16:05
Bonjour,
la fonction sapply() fait en fait appel à la fonction lapply() et essaye de simplifier le résultat en, typiquement, un vecteur. Lapply sous réserve. Donc le plus simple pour comprendre sapply() c'est de commencer à jouer avec lapply() qui va appliquer une même fonction à une liste. Comme les objets de la classe sont aussi des listes, on peut faire par exemple:
Code: Tout sélectionner data(rock) lapply(rock, mean) colMeans(rock) sapply(rock, mean)
Amicalement,
Jean
Retourner vers « Questions en cours »
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invité
Lapply Sous Réserve
Nous créons une fonction nommée avg pour calculer la moyenne du minimum et du maximum du vecteur. avg <- function(x) { ( min(x) + max(x)) / 2}fcars <- sapply(dt, avg)fcars
Sortie
## speed dist## 14. 5 61. Comment faire pour obtenir les listes avec la fonction lapply en R - Para Dummies. 0
La fonction sapply() est plus efficace que lapply() dans la sortie retournée parce que sapply() stocke les valeurs directement dans un vecteur. Dans l'exemple suivant, nous verrons que ce n'est pas toujours le cas. Nous pouvons résumer la différence entre apply(), sapply() et `lapply() dans le tableau suivant:
lapply
Fonction
Arguments
Objectif. Entrée
apply
apply(x, MARGIN, FUN)
Appliquer une fonction aux lignes ou aux colonnes ou aux deux
Cadre de données ou matrice
vecteur, liste, tableau
lapply(X, FUN)
Appliquer une fonction à tous les éléments de l'entrée
Liste, vecteur ou cadre de données
liste
sappy
sappy(X FUN)
vecteur ou matrice
Trancher un vecteur
Nous pouvons utiliser lapply() ou sapply() de manière interchangeable pour trancher un cadre de données. Nous créons une fonction, below_average(), qui prend un vecteur de valeurs numériques et renvoie un vecteur qui ne contient que les valeurs strictement supérieures à la moyenne.
Fonction lapply()
La fonction lapply() est utile pour effectuer des opérations sur des objets de liste et renvoie un objet de liste de même longueur que l'ensemble d'origine. lappy() renvoie une liste de longueur similaire à l'objet de liste d'entrée, dont chaque élément est le résultat de l'application de FUN à l'élément correspondant de la liste. lapply() prend une liste, un vecteur ou un cadre de données en entrée et donne une sortie en liste. lapply(X, FUN)Arguments:-X: A vector or an object-FUN: Function applied to each element of x
l dans lapply() représente la liste. La différence entre lapply() et apply() réside dans le retour de sortie. Le retour de lapply() est une liste. lapply() peut être utilisé pour d'autres objets comme les cadres de données et les listes. La fonction lapply() n'a pas besoin de MARGIN. Un exemple très simple peut être de changer la valeur de la chaîne de caractères d'une matrice en minuscule avec la fonction tolower. Nous construisons une matrice avec le nom des films célèbres.
Postée le 4 Avril 2021
Une excellente initiative du Club Hongrois à laquelle
nos léos des Neiges de Chantelouve, ainsi que ceux du Bonnie Blue Flag
ont grandement participé et représenté le leonberg français,
Une exposition virtuelle basée sur photos, corps, tête et autres, ouverte à tous les leonbergs
qu'ils soient confirmables ou pas, et jugée par trois juges internationales. Photo de Shih tzu > Elevage La Gentiane Des Neiges > N 438639 sur Photos-Animaux.com. La totalité des sommes recueillies sera verséeà Health Leonberger Fondation
pour la recherche sur l'ostéosarcome chez le Leonberg. Retrouvez ici les résultats ainsi que les appréciations des juges qui ont classé
Nisan-Prunelle - Premier de la Classe Ouverte Mâles
Ogustin-Gentiane - Deuxième de la Classe Ouverte mâles
Pierrot-Nigritelle - Meilleure tête de mâles
Nisan-Prunelle - Deuxième Meilleure tête de mâles
Pierrot-Nigritelle - Deuxième de la Classse Intermédiaire Mâles
Perrine-Nigritelle - Meilleure tête de la Classe intermédiaire Femelles
Fanny-Brumaire - Première de la Classse Vénérables Femelles. Merci également pour leur participation à cet événement caritatif de
Nana-Prunelle, Jehanne-Nivôse, Margot-Lilas, Onorine-Gentiane, Ninon-Prunelle
ainsi qu'à tous leurs propriétaires
Elevage La Gentiane Des Neiges Ii
Par souci de qualité, nous vous remercions de nous rejoindre sur notre site où vous trouverez des informations fiables et complètes sur nos chiens et notre élevage. retrouvez nous sur notre site
Politique générale de protection des données à caractère personnel
Les données que nous collectons sont uniquement celles nécessaires à la bonne utilisation de notre service. En continuant à utiliser nos services à compter du 25 mai 2018, vous reconnaissez et acceptez la mise à jour de notre Règlement sur la protection de la vie privée et de notre Politique Cookies.