J'ai une question technique pour vous s'il de plait.
J'ai plusieurs data.frame qui ont plusieurs niveaux de détail. Il s'agit de données d'observations.
Code : Tout sélectionner
datatest
Code : Tout sélectionner
datatest2
Sauf qu'il existe des séances d'observations durant lesquelles 0 individu ont été observées. Je voulais donc sélectionner les séances à 0 individus pour les fusionner avec les datatest2 :
Code : Tout sélectionner
datatest <- subset(EchelleOBS, NBPobs == 0)
datatest2 <- EchelleIndObs
La je crée des colonnes avec des variables qui n'existent pas dans datatest mais qui exsitent dans datatest2 (l'ancien POIDS représentait des valeurs cumulées) :
Code : Tout sélectionner
datatest$POIDS <- NULL
datatest$AGE <- NA
datatest$POIDS <- NA
datatest$SEXE <- NA
Ensuite je sélectionne les mêmes variables :
Code : Tout sélectionner
datatest <- datatest[, c("SAISON", "EQUIPE_NUMERO", "EQUIPE_TYPE", "EQUIPE_NBOBS", "OBS_DATE", "OBS_NUMERO", "COMMUNE_NUMERO", "COMMUNE_LIBELLE", "UNITEGESTION_CODE", "TERRITOIRE_TYPE", "NBOBS", "NBINVITE", "RESERVE", "AGE", "POIDS", "SEXE")]
datatest2 <- datatest2[, c("SAISON", "EQUIPE_NUMERO", "EQUIPE_TYPE", "EQUIPE_NBOBS", "OBS_DATE", "OBS_NUMERO", "COMMUNE_NUMERO", "COMMUNE_LIBELLE", "UNITEGESTION_CODE", "TERRITOIRE_TYPE", "NBOBS", "NBINVITE", "RESERVE", "AGE", "POIDS", "SEXE")]
Et ensuite je merge :
Code : Tout sélectionner
datatest3 <- merge(datatest, datatest2, all = T)
L'objectif ici était de rajouter les lignes avec 0 observation dans le data.frame datatest2. Première question, est ce que c'est exact de faire ça svp ?
J'ai un autre data.frame, cette fois-ci à l'échelle de la commune (1 ligne = 1 commune) qui comprend 3 variables qui m'intéresse : "COMMUNE_NUMERO", "SURFACEFAVORABLES", "COMMUNE_SURFACE_TOTALE".
J'aimerais fusionner ces informations avec mon datatest3. Y aurait-il un moyen de faire comprendre à R qu'à une commune correspond une surface & une surface favorable (déjà il faudrait tester si c'est le cas, mais je ne sais pas comment faire, peut être qu'elles changent en fonction du temps puisque j'ai plusieurs saisons), et ensuite lui demande qu'à chaque COMMUNE_NUMERO dans datatest3 il ajoute la surface & la surface favorable qui correspondent dans deux autres colonnes (et si les surfaces ne sont pas les mêmes, qu'à chaque COMMUNE_NUMERO & SAISON correspond 1 surface & 1 surface favorable). ps : (quand je merge by "COMMUNE_NUMERO" ça ne semble pas fonctionner).
Merci pour votre aide !