Bonjour à tous,
J'essaie de faire un calcul à partir d'un dataframe mais je bute :
Voici un dataframe Test qui représente mes données :
1 2 3 4 5 6 7 8 9
| # Création dataframe Test
Num_etablissement <- c(1,1,2,2)
PDS <- c(1.9,1.2,2.5,"NA")
Acte <- c("A","B","A","A")
Précision.1 <- c("P1","P2","P2","P1")
DF <- data.frame (Num_etablissement,PDS,Acte, Précision.1)
cet_acte <- "A" # je filtre mon tableau pour un acte donné
DFa <- DF[DF$Acte==cet_acte,] |
Ce qui donne :
> DFa
Num_etablissement PDS Acte Précision.1
1 1 1.9 A P1
3 2 2.5 A P2
4 2 NA A P1
Ensuite je cherche à connaître le nombre d’établissement pour chaque précision1. Je me suis servi de ce code :
data.frame(Précision.1=unique(DFa$Précision.1), nb_de_Centres_differents=sapply(unique(DFa$Précision.1), function(x){length(unique(DFa$Num_etablissement[DFa$Précision.1==x]))}))
J’obtiens :
Précision.1 nb_de_Centres_differents
1 P1 2
2 P2 1
Hors je souhaiterais maintenant filtrer en enlevant les lignes « NA » du PDS et obtenir :
Précision.1 nb_de_Centres_differents
1 P1 1
2 P2 1
J’ai essayé d’utiliser [!is.na(DFa$PDS) ] mais cela ne fonctionne pas.
Merci de votre aide
Matou
Partager