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 :

Je cherche à réaliser une boucle


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    chambéry
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chambéry
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par défaut Je cherche à réaliser une boucle
    Bonjour,

    Je suis débutant sous R

    Je dipose d'un jeu de données (data) comportant les coordonnées geographiques d'oiseaux sur une commune : il s'agit de 1050 individus pour 64 espèces. Chaque espèce comprend donc plusieurs individus, chacun avec des coordonnées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    head(data)
                    Espece            nom_latin Point.STOC XCOORD  YCOORD
    1      Corneille noire        Corvus corone          1 925314 6505657
    2  Etourneau sansonnet     Sturnus vulgaris          1 925314 6505657
    3 Mesange charbonniere          Parus major          1 925314 6505657
    4          Pic epeiche    Dendrocopos major          1 925314 6505657
    5    Pinson des arbres    Fringilla coelebs          1 925314 6505657
    6      Rougequeue noir Phoenicurus ochruros          1 925314 6505657
    Je voudrais faire apparaitre pour chaque espèce, un graphique de la répartition de ces points de localisation grâce à la fonction plot.

    Est-il possible de faire une boucle pour afficher en une seule fois tous ces graphiques?

    Pour une espèce (mésange charbonnière), je fais comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Mesange_charbonniere<-subset(data,Espece=="Mesange charbonniere")
    plot(Mesange_charbonniere$XCOORD,Mesange_charbonniere$YCOORD)
    Merci d'avance pour vos réponses.

    Tomas

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Par défaut
    Bonjour,

    Une idée pour afficher tous les graphiques sur une même page (en espérant qu'il n'y en ait pas trop !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    n<-length(data$Espece)
     
    par(mfrow=c(3,4))  # par exemple pour n=12, à adapter en fonction du nombre de graphes
     
    for(i in 1:n)
    {
       M<-subset(data,Espece==data$Espece[i])
       plot(M$XCOORD,M$YCOORD)
    }
    Sinon, pour afficher chaque graphe dans une nouvelle fenêtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    n<-length(data$Espece)
     
    for(i in 1:n)
    {
       M<-subset(data,Espece==data$Espece[i])
       x11()
       plot(M$XCOORD,M$YCOORD)
    }
    Et il est également possible de sauver tous les graphes dans un fichier externe, par exemple un pdf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    n<-length(data$Espece)
     
    pdf("monpdf.pdf")
     
    for(i in 1:n)
    {
       M<-subset(data,Espece==data$Espece[i])
       plot(M$XCOORD,M$YCOORD)
    }
     
    dev.off()
    Pour info, vous trouverez plusieurs tutoriels ici, avec notamment des informations sur les boucles, la génération de graphiques, etc...

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    Candidat au Club
    Homme Profil pro
    chambéry
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chambéry
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par défaut boucle avec un vecteur de caractères?
    Bonjour,

    Merci pour votre réponse.

    Cependant le vecteur n que je souhaite utiliser poour la fonction for comporte des caractères et non des valeurs numeriques, il sagit d'appliquer la boucle à chacune des 63 espèce qui sont répartis dans le jeu de données, et non aux 1050 individus :

    est-il possible d'appliquer à la fonction for un vecteur de caractères?

    Merci d'avance

  4. #4
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Par défaut
    Bonjour,

    Vous pouvez faire quelque chose comme ceci je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    all_especes<-levels(data$Espece)
     
    n<-length(all_especes)
    Puis reprendre un des exemples de boucles que je vous ai indiqués :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(i in 1:n)
    {
       M<-subset(data,Espece==all_especes[i])
       x11()
       plot(M$XCOORD,M$YCOORD)
    }
    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

Discussions similaires

  1. [XL-2007] Réaliser une boucle
    Par alexandrek dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 02/02/2011, 11h19
  2. Réaliser une boucle
    Par guigui69 dans le forum VBScript
    Réponses: 0
    Dernier message: 16/06/2010, 11h03
  3. Réponses: 2
    Dernier message: 12/04/2010, 17h14
  4. Comment réaliser une boucle pour remplir un tableau
    Par LVChatel dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 03/04/2009, 11h20
  5. réaliser une boucle pour afficher des sources
    Par cloridriks dans le forum Langage
    Réponses: 9
    Dernier message: 17/03/2008, 15h21

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