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 :

sapply et double boucle


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut sapply et double boucle
    Bonjour,
    je débute avec la programmation en R et j'ai une fonction que j'aimerais simplifier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    a <- c("a1", "a2")
    b <- c("b1", "b2")
    for(i in 1:2){
        for(j in 1:2){
            plot(f(a[i], b[j]))
        }
    }
    Je voudrais utiliser quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    g <- function(x, y) {
        plot(f(x,y))    
    }
    sapply(???)
    J'ai essayé diverses combinaisons pour remplacer mes "???" mais sans résultats!
    J'ai dû mal comprendre le fonctionnement de "sapply" (j'ai aussi essayé "mapply"...)
    Quelqu'un pourrait-il m'aiguiller, svp?
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Bonjour,

    Quelle est la définition de la fonction f() (ou bien quelle librairie la définit) ?

  3. #3
    Membre chevronné
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Citation Envoyé par pitipoisson Voir le message
    Bonjour,

    Quelle est la définition de la fonction f() (ou bien quelle librairie la définit) ?
    Bonjour,
    j'utilse le package "survival" et je veux tracer en fonction de l'âge:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot( survexp.usr[ , s, r, "2004"] )
    où s représente le sexe, et r la race.
    Je veux donc obtenir les 4 courbes en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sexe <- c("male", "female")
    race <- c("white", "black")
    et "sapply"...
    Pensez-vous que cela soit possible?
    Merci

  4. #4
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    OK,

    Le principe est le suivant (j'ai pris la fonction message pour l'exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    a <- c("a1", "a2")
    b <- c("b1", "b2")
     
    ## Original :
    for(i in 1:2){
        for(j in 1:2){
            message(a[i], " ", b[j])
        }
    }
     
    ## Avec sapply :
    invisible(sapply(a,
                     function(x) sapply(b,
                                        function(y) message(x, " ", y))))
    Ceci dit, lorsque tu as peu de cas, c'est pas vraiment la peine d'avoir recours à cette méthode. C'est moins lisible et le gain de performance sera sans doute imperceptible.

  5. #5
    Membre chevronné
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Merci beaucoup, je n'ai eu qu'à adapter le code
    Même si cela n'est pas fondamental ici, cet exemple va m'aider pour de futurs programmes...j'espère

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

Discussions similaires

  1. problème de logique sur doubles boucles
    Par beebe dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/06/2008, 14h17
  2. Double boucle imbriquée pas assez rapide.
    Par Bruno13 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/06/2008, 21h01
  3. [batch] double boucle for
    Par schlopa dans le forum Windows
    Réponses: 12
    Dernier message: 11/02/2008, 19h54
  4. Sortir d'une double boucle FOR-END
    Par Invité dans le forum MATLAB
    Réponses: 4
    Dernier message: 05/12/2007, 11h07
  5. double boucle
    Par benjisan dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/10/2007, 17h07

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