Construction de variables / Boucles for emboités

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Baptiste Carrere
Messages : 4
Enregistré le : 01 Mar 2019, 11:42

Construction de variables / Boucles for emboités

Messagepar Baptiste Carrere » 13 Juin 2019, 11:07

Bonjour à tous,

Je possède un jeu de donnée pour lequel je m’intéresse à 5 variables qui sont :
SITE - ESPÈCES - ANNÉE - MOIS - NOMBRE(Comptage)

Je souhaite créer une nouvelle variable qui correspond au temps de croissance annuel entre l'année t et l'année (t-1).
L'idée est d'obtenir ces taux de croissances pour chaque espèces, chaque sites et chaque mois.
J'ai ainsi emboité des boucles for pour construire mon taux de croissance pour chaque espèces, chaque mois et chaque sites.

Mon problème est que je n'arrive pas à "retranscrire" ces taux de croissance dans mon jeu de donnée global.

voici mon morceau de code pour réaliser cette tache :

Code : Tout sélectionner

mydata<-BDDR
                                   
  for(j in levels(BDDR$site)){
    BDDS<-droplevels(subset(BDDR, site%in%j))   ### Je sépare mon jeu de donnée selon le site
   
    for(i in levels(BDDS$SP)){
      BDDSP<-droplevels(subset(BDDS, SP%in%i))  ### Je sépare mon jeu de donnée pour chaque espèces
     
      for(m in levels(as.factor(BDDSP$month))){ 
        BDDSPN<-droplevels(subset(BDDSP, month%in%m)) ### Je sépare mon jeu de donnée pour chaque mois
       
        BDDSPN$TC<-NA

for(t in 2:length(BDDSPN$count)) {
  BDDSPN$TC[t]<-(BDDSPN$count[t]-BDDSPN$count[t-1])/BDDSPN$count[t-1]   ### je crée ma fonction taux de croissance
 
  BDDSPN$TC[t][is.na(BDDSPN$TC[t])]<-0
  BDDSPN$TC[t][is.infinite(BDDSPN$TC[t])]<-BDDSPN$count[t]

}}}}
 


Je n'ai pas trouvé de solution pour récupérer cette variable TC de BDDSPN et la retranscrire sur mon jeu de donnée total (BDDR).
Si quelqu'un a des idées ou des solutions je suis tout à fait preneur !

Je vous remercie d'avance pour votre aide.

Baptiste Carrere

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Construction de variables / Boucles for emboités

Messagepar Pierre-Yves Berrard » 13 Juin 2019, 12:33

Bonjour,

L'utilisation de ce type de boucle est un casse-tête qu'on peut s'épargner.

Un sujet très similaire.
Voir en particulier les réponses utilisant le package dplyr.
PY

Baptiste Carrere
Messages : 4
Enregistré le : 01 Mar 2019, 11:42

Re: Construction de variables / Boucles for emboités

Messagepar Baptiste Carrere » 13 Juin 2019, 13:45

Bonjour Pierre-Yves,

Super ça fonctionne parfaitement, je te remercie pour ton aide !
C'est sur que c'est carrément plus simple qu'en emboitant des boucles.


Baptiste Carrere


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité