Voici mon problème :
J'ai une base de données (data) concernant des prélèvements effectués par patient (une ligne par prélèvement, parfois plusieurs prélèvements par patient).
J'ai également une colonne "commentaires", avec une information lorsqu'elle est nécessaire (sinon NA).
en voici un extrait (anonymisé, chaque patient a un identifiant num_pat) :
num_pat Commentaires
1093 8 greffe - DCD
37 9 DCD
38 9 DCD
69 9 <NA>
71 9 <NA>
133 9 <NA>
200 9 <NA>
225 9 <NA>
226 9 <NA>
271 9 <NA>
292 9 <NA>
344 9 <NA>
345 9 <NA>
385 9 <NA>
394 9 <NA>
395 9 <NA>
416 9 <NA>
435 9 <NA>
436 9 <NA>
18 10 <NA>
19 10 <NA>
280 10 <NA>
351 10 <NA>
352 10 <NA>
353 10 <NA>
357 10 <NA>
Le problème, c'est que pour certains patients, j'ai parfois cette fameuse information, et parfois non. J'aimerais dans ce dernier cas remplacer les NA par l'information manquante...
Je me suis lancée dans la création d'une liste
Code : Tout sélectionner
parpat<-aggregate(data,by=list(data$num_pat),FUN=unique)
Puis j'ai compté le nombre d'informations distinctes par patient
Code : Tout sélectionner
parpat$comments<-sapply(parpat$Commentaires, length)
...Puis je me suis perdue dans des boucles sans fin pour essayer de remplacer, lorsqu'il y a 2 valeurs uniques (NA et une autre), le NA par la valeur d'intérêt.
Par exemple, j'ai tenté ça :
Code : Tout sélectionner
data$comment<-c()
i<-1
for (i in 1:nrow(data)){
for(j in 1:nrow(parpat)){
while(data$Patient[i]==parpat$Patient[j]){
data$comment[i]<-ifelse(parpat$comments[j]>1, na.omit(parpat$Commentaires)[j], parpat$Commentaires[j])
i<-i+1
}
}
}
Enfin voilà, c'est mon premier post, j'espère que vous allez comprendre mon problème !
Merci à celles et ceux qui tenterons de m'aider