Bonjour,
J'ai un souci de programmation avec les boucles For
J'ai une base de donnée avec en colonnes :
- le num d'hospitalisation du patient (HospitalNumber)
- La date d'admission
- la date de sortie
- la date de prélèvement lymphocytaire (afname_dt)
- le compte lymphocytaire (LYM)
Pour chaque patients il peut y avoir plusieurs hospitalisation, chaque patient il y a plusieurs prélèvements et il peut y avoir plusieurs prélèvements pour une même journée
ex :
HospitalNumber ICUadm ICUDis afname_dt LYM
12345 12/10/2017 14/10/2017 12/10/2017 1,6
12345 ... ... 12/10/2017 1,4
12345 ... ... 13/10/2017 1,7
Je souhaiterai que pour chaque patient, s'il existe plusieurs prélèvement dans une même journée R fasse la moyenne du compte lymphocytaire de la journée et la transpose dans une nouvelle colonne. Pour n'obtenir qu'un prélèvement par date et par patient.
J'ai fait une boucle :
for(i in unique(LYMPHO$HospitalNumber)){
minidf <- LYMPHO[LYMPHO$HospitalNumber==i,]
for (j in unique(minidf$afname_dt)) {
minidf2 <- minidf[minidf$afname_dt==j,]
print(mean(minidf2$LYM))}
}
qui me donne bien la moyenne des comptes lymphocytaires par dates,
Mais je n'arrive pas à la mettre en colonne dans ma dataframe...
dates<-as.Date.character(LYMPHO$afname_dt,"%d/%m/%Y")
new_df <-data.frame(dates,Patient = LYMPHO$HospitalNumber,Lympho = LYMPHO$LYM)
for(i in unique(new_df$Patient)){
minidf <- new_df[new_df$Patient==i,]
for (j in unique(minidf$dates)) {
minidf2 <- minidf[minidf$dates==j,]
new_df <- rbind(new_df, c(j, i, mean(minidf2$Lympho)))
}
}
Est ce que quelqu'un a une idée de l'endroit où je me trompe ?
Merci beaucoup
Louise