IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Conditions variables dans un appel de fonction


Sujet :

R

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut Conditions variables dans un appel de fonction
    Bonjour,

    Je souhaiterais créer une fonction dans laquelle je mets une condition comme paramètre d'appel.
    Typiquement, il s'agit de créer des data.frame dynamiques, mais surtout de concentrer dans le corps de la fonction, les différents traitements que je veux leurs associer.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Fonction <- function(Table,Condition) {
       DF <- subset(Table,Condition)
       ... Divers traitements sur DF
       return( ... )
    }
    et appel avec
    DF1 <- Fonction(Table, Condition1)
    DF2 <- Fonction(Table, Condition2)
    ...
    Quelqu'un aurait-il une idée de la meilleure manière de procéder ?

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Après lecture de https://stat.ethz.ch/pipermail/r-hel...er/182922.html, une proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    data("mtcars")
     
    filtre <- function(table, condition){
      cond <- eval(substitute(condition), table, parent.frame())
      DF <- subset(table, cond)
      DF$id <- rownames(DF)
      return(DF)
    }
     
    filtre(mtcars, mtcars$cyl==4)
    filtre(mtcars, cyl==4)
    L'idée est de s'inspirer de ce que contient la fonction subset, c'est à dire surtout une étape d'évaluation de la condition dans le bon contexte, à savoir que les colonnes sont celles de la table en paramètre quand on ne les explicite pas avec un $.
    Bon courage.
    Olivier

  3. #3
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par olivier.decourt Voir le message
    Après lecture de https://stat.ethz.ch/pipermail/r-hel...er/182922.html, une proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cond <- eval(substitute(condition), table, parent.frame())
    Génial !
    Merci Olivier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 12/11/2008, 17h57
  2. Des dollars dans un appel de fonction
    Par florian63 dans le forum Langage
    Réponses: 1
    Dernier message: 04/08/2008, 15h42
  3. Réponses: 2
    Dernier message: 11/09/2007, 11h15
  4. Réponses: 4
    Dernier message: 28/07/2007, 23h45
  5. [JS] array dans un appel de fonction
    Par dib258 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/10/2005, 13h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo