[R] binary operators that never return missing values

Rui Barradas ruipbarradas at sapo.pt
Thu Jun 21 00:16:45 CEST 2012


Hello, again.

I have two apologies, to the list for having forgotten to cc my previous 
reply to this thread, and to you for not having understood that you 
wanted it solved in one step. My solution would need two steps.

Now revised.

no.na <- function(x, value=FALSE){x[is.na(x)] <- value; x}

no.na(a > b)

x <- (a > b)
x <- ifelse( is.na( x ) , F , x )

identical( x, no.na(a > b) )
[1] TRUE


Hope this helps,

Rui Barradas

Em 20-06-2012 21:44, Anthony Damico escreveu:
> 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
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list