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 :

appels de plusieurs fonctions


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 23
    Par défaut appels de plusieurs fonctions
    Bonjour,
    je souhaite pouvoir appeler plusieurs fonctions qui sont situées dans un seul dossier.
    Pour le moment, j’exécute le code ci-dessous (setPath.R) qui récupère l'ensemble des fonctions ".r" de mon répertoire mais il exécute chacune des fonctions qui y sont présentes. Est-ce qu'il y aurait un moyen beaucoup plus simple, comme dans matlab (set path), où on spécifie uniquement le dossier contenant les sources?
    Je vous remercie pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    listFunctions = list.files( pattern = "\\.[R]$")
     
    listFunctions=setdiff(list.files( pattern = "\\.[R]$") ,"setPath.R")
     
    for (i in 1 :length(listFunctions))
    { 
     #fichier= paste(getwd(),"/",nm,sep = "")
     fichier = listFunctions[i]
     print(fichier)
     source(fichier)
    }

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 75
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    source(file = '~/chemin-vers-mes-fichiers/', chdir = TRUE)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 23
    Par défaut
    Merci pour votre réponse.
    J'ai essayé votre code dans la console mais lorsque j'appelle une des fonctions de mon dossier, celle-ci n'est toujours pas reconnue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    > source(file = getwd(), chdir = TRUE)
    > affichage()
    Erreur : impossible de trouver la fonction "affichage"

  4. #4
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 75
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # ?source
          sourceDir <- function(path, trace = TRUE, ...) {
             for (nm in list.files(path, pattern = "[.][RrSsQq]$")) {
                if(trace) cat(nm,":")
                source(file.path(path, nm), ...)
                if(trace) cat("\n")
             }
          }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 23
    Par défaut
    L'exemple envoyé fait la même chose que ma fonction. Le problème est que dans mon dossier, j'ai crée une fonction qui efface les variables du workspace tout en conservant les fonctions sources. Je pense que le problème est que ma fonction est mal écrite. Existe t-il une fonction qui permet d'effacer les values du worspace sans effacer les fonctions mises en source?
    Merci d'avance pour votre aide.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 23
    Par défaut
    Pour cette dernière question, je viens de trouver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rm(list=setdiff(ls(), ls.str(mode="function")))

  7. #7
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 75
    Par défaut
    Tu peut utiliser 'rm' après avoir listé les variables de ton environnement avec 'ls'.
    Pour tester si un objet de ton environnement est une fonction, il existe la fonction 'get'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    is.function(get("lm")) # prend une chaîne de caractères
    # TRUE
    x = 1 
    if (!is.function(get("x")) ) rm(x) # on supprime si ce n'est pas une fonction

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/03/2014, 18h02
  2. [AJAX] appel de plusieurs fonctions en meme temps
    Par caro71ol dans le forum AJAX
    Réponses: 4
    Dernier message: 20/01/2011, 14h27
  3. appel de plusieurs fonctions Jquery en parallèle
    Par bluespirit dans le forum jQuery
    Réponses: 2
    Dernier message: 11/12/2010, 14h28
  4. Appel de plusieurs fonctions sur onload de body
    Par laurentSc dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/08/2009, 10h52
  5. appel de plusieurs fonctions
    Par aupetitbonheur dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 23/08/2006, 11h59

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