[R] binary operators that never return missing values

Anthony Damico ajdamico at gmail.com
Wed Jun 20 22:44:25 CEST 2012


Hi, I work with data sets with lots of missing values.  We often need
to conduct logical tests on numeric vectors containing missing values.
 I've searched around for material and conversations on this topic,
but I'm having a hard time finding anything.  Has anyone written a
package that deals with this sort of thing?  All I want are a group of
functions like the ones I've posted below, but I'm worried I'm
re-inventing the wheel..  If they're not already on CRAN, I feel like
I should add them.  Any pointers to work already completed on this
subject would be appreciated.  Thanks!

Anthony Damico
Kaiser Family Foundation



Here's a simple example of what I need done on a regular basis:

#two numeric vectors
a <- c( 1 , NA , 7 , 2 , NA )

b <- c( NA , NA , 9 , 1 , 6 )

#this has lots of NAs
a > b

#save this result in x
x <- (a > b)

#overwrite NAs in x with falses (which we do a lot)
x <- ifelse( is.na( x ) , F , x )

#now x has only trues and falses
x



################
Here's an example function that solves the problem for "greater than"
################


#construct a function that performs the same steps:
"%>F%" <-
	function( a , b ){
	
		x <- (a > b)

		x.false <- ifelse( is.na( x ) , F , x )

		x.false

	}

#run the function

a %>F% b



More information about the R-help mailing list