[R] Counting NA?

Warnes, Gregory R gregory_r_warnes at groton.pfizer.com
Thu Oct 24 01:56:44 CEST 2002



> -----Original Message-----
> From: Matej Cepl [mailto:matej at ceplovi.cz]
> Sent: Wednesday, October 23, 2002 10:53 AM
> To: r-help at stat.math.ethz.ch
> Subject: Re: [R] Counting NA?
> 
> 
> On Wed, Oct 23, 2002 at 01:54:50PM +0200, David Wartel wrote:
> > Surely not the best method:
> > length(which(is.na(data$S2)==TRUE))
> 

For pure convenience, the gregmisc package includes a generic function
'nobs' which (for vectors) does sum(!is.na(x)).

	> library(gregmisc)
	> nobs( c(1,2,3,4,5,NA,NA,NA ))
	[1] 5

> One this I was really surprised what that in order to get data
> from the same data I have to use following construct constantly:
> 
> 	sumyes <- length(data$S2[data$S2 == 1 & !is.na(data$S2)])
> 
> Isn't there any way how to say R, that I want eliminate NA data 
> for all my following calculations?

Well, the simplest thing would be to create a new variable with the missing
values removed, 

	y <- na.omit(data$S2)

which is pretty much equivalent to

	y <- data$S2[!is.na(data$S2)]

in this case.

For data frames it na.omit removes rows with any missing value, which is
what we often desire:

> data <- data.frame( x=rnorm(10), y=rnorm(10))
> data$y[3] <- NA
> data
             x          y
1  -1.40045667  0.1370657
2   0.16997476  0.4742317
3   0.66760007         NA
4   1.55857918  0.7787977
5  -0.70213268 -0.3806202
6  -1.03643219  0.4481208
7  -0.72489209  0.5521957
8  -0.86034676  1.3522844
9   0.50605859  1.5335474
10 -0.05295296  1.4871456
> na.omit(data)
             x          y
1  -1.40045667  0.1370657
2   0.16997476  0.4742317
4   1.55857918  0.7787977
5  -0.70213268 -0.3806202
6  -1.03643219  0.4481208
7  -0.72489209  0.5521957
8  -0.86034676  1.3522844
9   0.50605859  1.5335474
10 -0.05295296  1.4871456
> 

-Greg


LEGAL NOTICE
Unless expressly stated otherwise, this message is confidential and may be privileged. It is intended for the addressee(s) only. Access to this E-mail by anyone else is unauthorized. If you are not an addressee, any disclosure or copying of the contents of this E-mail or any action taken (or not taken) in reliance on it is unauthorized and may be unlawful. If you are not an addressee, please inform the sender immediately.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list