je travaille sur une base de données où les sujets sont suivis quotidiennement avec les même mesures répétées jusqu'à un maximum de J50.
Je voudrais créer des variables dépendantes de ce ce qui se passe les jours précédents mais ne sais pas comment le faire simplement avec un script "général" où je pourrais spécifier "J moins 1" sans avoir à strictement nommer la variable.
Je vous donne un exemple pour clarifier ma demande.
Soit variable "Fièvre": fievre_J1; fievre_J2 [...] fievre_J50
Si je veux créer une variable "pas de fièvre pendant 3 jours", pour le moment je fais
Code : Tout sélectionner
db$apyrexie_72h<-as.factor(ifelse(db$fievre_J1=="0"&db$fievre_J2=="0"1db$fievre_J3=="0", "1",
ifelse(db$fievre_J2=="0"&db$fievre_J3=="0"1db$fievre_J4=="0", "1",
ifelse(db$fievre_J3=="0"&db$fievre_J4=="0"1db$fievre_J5=="0", "1"
[...]
ifelse(db$fievre_J48=="0"&db$fievre_J49=="0"1db$fievre_J50=="0", "1",,"0")))))))))))))))))))))))))))))))))))))))[...]
C'est faisable mais fastidieux avec un risque important de coquilles.
J'imagine qu'il y a un moyen plus simple d'obtenir le même résultat.
Question subsidiaire, est-il aussi possible de créer non pas une variable factorielle mais numérique identifiant le jour à laquelle on obtient la condition voulue? Ce qui donnerait avec mon script
Code : Tout sélectionner
db$premier_jour_apyrexie_72h<-as.numerical(ifelse(db$fievre_J1=="0"&db$fievre_J2=="0"1db$fievre_J3=="0", 1,
ifelse(db$fievre_J2=="0"&db$fievre_J3=="0"1db$fievre_J4=="0", 2,
ifelse(db$fievre_J3=="0"&db$fievre_J4=="0"1db$fievre_J5=="0", 3
[...]
ifelse(db$fievre_J48=="0"&db$fievre_J49=="0"1db$fievre_J50=="0", 48,NA)))))))))))))))))))))))))))))))))))))))[...]
Merci beaucoup de votre aide,
Tài