2013-04-13 9 views
1

Je veux compter les valeurs dans un tableau qui ne sont pas "NA".Boucle booléenne: Inégal à NA

E.g. Je

array<-c(NA,NA,NA,NA,NA,4,-5.5463) 

Je pensais que cela fonctionnerait, mais il ne possède pas:

counter<-0 
for(i in 1:length(array)){ 
if(array[i]!=na){ 
counter<-counter+1 
} 
} 

Comment puis-je compter les valeurs de ce tableau, qui ne sont pas « NA »?

Répondre

6

Utilisez is.na et sum. Le ! représente "non":

> sum(!is.na(array)) 
[1] 2 

Vous pouvez également utiliser table, comme dans:

> table(is.na(array)) 

FALSE TRUE 
    2  5 

Ou, comme @Arun suggère dans les commentaires:

> length(na.omit(array)) 
[1] 2 
+0

merci, je vais Acceptez votre réponse en 12 minutes :-) –

+3

alternativement, 'longueur (na.omit (array))' – Arun