Récupération de x pour un y donné - pour chaque groupe - taux de croissance
Bonjour,
Je suis actuellement en train de développer un script me permettant de calculer des taux de croissance basés sur le poids pour chaque individu ainsi que de récupérer le taux de croissance maximal au cours du temps (également pour chaque individu) et l’âge auquel ce taux de croissance correspond.
Un extrait de mes données :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Individual Age Weight
Ind1 1 52.84846
Ind1 2 55.24094
Ind1 3 58.69186
Ind1 4 63.07099
Ind1 5 68.2912
Ind1 6 74.28564
Ind1 7 80.99898
Ind1 8 88.38326
Ind1 9 96.39554
Ind2 1 52.24302
Ind2 2 54.86406
Ind2 3 58.74473
Ind2 4 63.75136
Ind2 5 69.78921
Ind2 6 76.78161
Ind2 7 84.66206
Ind2 8 93.37037
Ind2 9 102.8507
|
Le script que j’ai rédigé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| datatest <- read.table("Test16082017.txt", header = T)
datatest[,4]<-NA
datatest[,5]<-NA
datatest[,6]<-NA
names(datatest)[4:5:6]<-c("GrowthRate","MaxGC","AgeMaxGC")
head(datatest)
library(dplyr)
datatest<-datatest %>% group_by(Individual) %>% mutate(GrowthRate=(lead(Weight)- Weight)/ Weight,MaxGC=max(GrowthRate,na.rm=TRUE),AgeMaxGC=datatest$Age[which(datatest$GrowthRate==max(datatest$GrowthRate,na.rm=TRUE))])
head(datatest) |
J’obtiens alors :
I
Code:
1 2 3 4 5 6 7 8 9 10
| ndividual Age Weight GrowthRate MaxGC AgeMaxGC
Ind1 1 52.84846 0.045271 0.091165 6
Ind1 2 55.24094 0.06247 0.091165 6
Ind1 3 58.69186 0.074612 0.091165 6
Ind1 4 63.07099 0.082767 0.091165 6
Ind1 5 68.2912 0.087778 0.091165 6
Ind1 6 74.28564 0.090372 0.091165 6
Ind1 7 80.99898 0.091165 0.091165 6
Ind1 8 88.38326 0.090654 0.091165 6
Ind1 9 96.39554 0.089226 0.091165 6 |
En vérifiant les calculs, le taux de croissance et le taux de croissance maximal sont bien calculés. Par contre, je me suis aperçue que l’âge qui devrait correspondre au taux de croissance maximal pour l’individu, correspond en réalité au taux de croissance maximal de tout le jeu de données. Je ne vois absolument pas où mon script pêche pour avoir l’âge par individu…
Je vous remercie beaucoup pour l’aide que vous pourriez m’apporter.
Aurélie