2 pièce(s) jointe(s)
Ma valeur est elle comprise dans l'intervalle x/y
Bonjour à tous,
Débutante en R, je rencontre un problème auquel je ne trouve pas de réponse..
Mon problème est le suivant :
J'ai un data frame avec 3336 observations et 10 variables (voir ci-dessous). J'ai ordonné mon data_frame selon le n° de l'animal et aussi le jour à l'aide de la ligne de code suivante (en passant j'ai viré les cases où il n'y avait pas de valeur (NA)) :
Code:
1 2
| FIO <- FIO[complete.cases(FIO$animal_number), ]
FIO1 <- FIO [order(FIO[,1],decreasing=FALSE),] |
Pièce jointe 293953
Je souhaitais obtenir un poids moyen par animal et par jour, j'ai donc fait une aggrégation avec l'instruction suivante :
Code:
mean_weight <- aggregate(weight ~day_visit_time+animal_number, data = FIO1, mean)
J'ai également calculé les variables x et y : x correspond à mean-2sd et y correspond à mean+2sd.
J'ai ainsi obtenu le data.frame suivant : Pièce jointe 293963
Ce nouveau dataframe agregé ne contient plus que 300 lignes contre 3338 pour le premier, les merger ou appliquer la fonction cbind() est donc impossible.
Je souhaiterais savoir si mon observation z (observation n°i, jour i, animal i) est comprise dans l'intervalle y/y de son groupe (c'est à dire même jour, même n°animal).
Pour cela, je vais utiliser la fonction ifelse tel que :
Code:
ifelse (weight <=x & weight>=y, weight, NA)
Petite particularité :
Le nombre d'observations par jour et par animal n'est pas fixé (cela peut être 10 comme cela peut être 3)
J'ai regardé au niveau des fonctions for et while (correspondance entre n°animal et jour) cela n'aboutit pas à grand chose..
N'hésitez pas à me poser des questions si vous avez des idées, des remarques, si je n'ai pas été clair etc..
Bonne journée,
Cordialement,
Tiphaine