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 :

Boucle sur R


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2022
    Messages : 3
    Par défaut Boucle sur R
    Bonjour,

    Je viens d'apprendre à faire des boucles sous R, je suis capable d'en faire de très simples avec if, for, while...

    Pour un travail, je dois en créer une qui est un peu complexe pour moi, j'espère que quelqu'un ici pourra m'aider (simplement pour me mettre sur la voie car je ne sais pas dans quel sens prendre le problème).

    J'ai un grand tableau avec des millions de données GPS d'oiseaux. J'ai une colonne identifiant l'individu (il y a une quinzaines d'individus, et des milliers de données/lignes par individu), une colonne avec la date et l'heure auxquelles les points GPS sont pris, et bien sûr, des colonnes de coordonnées GPS. Exactement comme dans le tableau (Points GPS) que j'ai mis en pièce jointe.

    Par ailleurs, j'ai un tableau donnant des informations sur la reproduction de certains de ces oiseaux. Ce second tableau se présente de la manière suivante : une ligne correspond à un individu et une année de reproduction (certains individus se sont reproduits 5 années de suite par exemple, donc il y a 5 lignes pour eux, d'autres une seule année, donc une seule ligne, d'autres ne se sont pas reproduits donc ils sont absents de ce tableau). Il y a donc une colonne qui identifie l'individu, exactement comme dans le tableau précédent + une colonne année. Et il y a des colonnes correspondant à différents événements de reproduction (date de ponte, date d'envol des jeunes...). Comme le tableau (Nicheurs) en pièce jointe.



    Mon but est de sélectionner dans mon premier tableau, tous les points GPS correspondant à tel individu à telle période de son cycle de reproduction pour telle année.

    Par exemple, j'aimerais obtenir les points GPS de l'oiseau appelé "Truc" pour la période d'élevage des jeunes de 2015. Mais je ne veux pas faire ça manuellement, j'ai besoin d'un code qui automatise la "sélection".

    Sachant que :
    - période de couvaison = période entre date_ponte et date_eclosion
    - période d'élevage des jeunes = période entre date_eclosion et date_envol
    (j'ai mis deux exemples mais j'ai 4 périodes en tout)



    J'aimerais avoir en sortie un tableau avec une colonne identifiant la période du cycle de reproduction période (couvaison, élevage des jeunes) avec une colonne identifiant les individus concernés, une colonne les années concernées, deux colonnes des coordonnées, et une colonne avec la date et l'heure (tableau de sortie en pièce jointe).

    J'ai surtout besoin d'idées de "stratégie" sur les étapes nécessaires, "l'esprit" pour ce type de boucle, mais après le but est que je me débrouille pour la réaliser au niveau du code.

    Merci d'avance si vous pouvez m'aiguiller,

    Nivacrin
    Images attachées Images attachées    

  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 : 48
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Par défaut
    Bonjour.
    A mon avis il ne faudrait surtout pas faire une boucle pour ce besoin. R lit déjà les données ligne à ligne sans besoin d'expliciter cette opération par une boucle.
    Si tu fais une jointure (base::merge ou dplyr::left_join) entre ta base GPS et ta base reproduction, tu vas avoir toutes les combinaisons d'un même individu (chaque ligne de GPS sera combinée avec chacune des 5 années de reproduction). OK, la table produite va être très grosse.
    Mais ensuite on la réduit facilement avec des filtres pour vérifier que les dates GPS sont bien dans les plages qui t'intéressent : si toutes les variables sont de type Date, des <= et >= permettent d'écrire facilement ce genre de conditions.

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. Macro sur Excel/Boucle sur les lettres
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/11/2005, 11h56
  3. [JDBC]Boucle sur tous les éléments du ResultSet
    Par Terminator dans le forum JDBC
    Réponses: 1
    Dernier message: 22/09/2005, 19h30
  4. L'installation d'XP boucle sur elle-même
    Par pf106 dans le forum Windows XP
    Réponses: 13
    Dernier message: 20/08/2005, 14h55
  5. [MFC] Boucle sur un bouton
    Par karl3i dans le forum MFC
    Réponses: 6
    Dernier message: 17/02/2004, 11h37

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