J'ai des données présentées sous la forme suivante :
Code : Tout sélectionner
Placette <- as.factor(c(1,1,1,2,2,1,1,1,2,2,2))
Arbre <- as.factor(c(1,2,3,1,2,1,2,3,1,2,3))
Diametre <- c(51,27,38,75,55,54,24,NA,77,58,37)
Annee <- as.factor(c("2017","2017","2017","2017","2017","2022","2022","2022","2022","2022","2022"))
Statut <- as.factor(c("G","G","M","G","G","G","G","M","G","G","N"))
df <- data.frame(Placette, Arbre, Diametre, Annee, Statut)
Le Statut correspond au statut de l'arbre (G : gardé, M : enlevé et N : nouveau). Chaque arbre gardé a une mesure de diamètre pour l'année 2017 et une pour l'année 2022. Je cherche à calculer l'accroissement pour chaque arbre gardé, c'est-à-dire la différence entre le Diamètre en 2022 et celui en 2017.
J'ai essayé en utilisant la bibliothèque "tidyverse", mais je bloque rapidement :
Code : Tout sélectionner
library(tidyverse)
Accroissement <- df %>%
group_by(Annee, Placette, Arbre, Statut) %>%
mutate(Acc = max(Diametre) - min(Diametre))
Je ne vois pas comment faire le calcul des accroissements ensuite (ce qui est ci-dessus ne fonctionne pas et ne donne que des zéros et un NA). Faut-il passer par une variable D2017 et D2022 ? Merci pour votre aide.