Bonjour,

Mon problème est assez simple. Je souhaite compter le nombre de "TRUE" contenus dans une liste diagForT, dans une des colonnes.
Les valeurs possibles sont "FALSE", "TRUE" et "NA". Je n'arrive pas à gérer les NA.
Voici le code que j'ai essayé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
temp=0
pchisq = function(k,temp,diagForT)
{ 
if ((diagForT$pchisq[k]!=NA) && diagForT$pchisq[k]>0.97)
	{temp=temp+1}
return(temp)
}
Mais à l'endroit où il y a un NA, ça plante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
typeof(diagForT)
[1] "list"
> typeof(diagForT$pchisq)
[1] "double"
> temp
[1] 0
 
diagForT$pchisq[11845]
[1] NA
 
diagForT$pchisq[11845]!="NA"
[1] NA
> diagForT$pchisq[11845]=="NA"
[1] NA
 if ((diagForT$pchisq[11845]!=NA) && diagForT$pchisq[11845]>0.97)
+ {temp=temp+1}
Erreur dans if ((diagForT$pchisq[11845] != NA) && diagForT$pchisq[11845] >  : 
  valeur manquante là où TRUE / FALSE est requis
Comment puis-je régler ce problème? Comment regarder si diagForT$pchisq[k]!=NA ?

Merci d'avance