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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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