[R] How to include custom na.action in function

Bert Gunter bgunter.4567 at gmail.com
Fri Feb 10 01:18:21 CET 2017


Do Not do this!

?ifelse  ## (is vectorized; or use subscripting)


> x <- c(NA,5,0,-3)

> ifelse(x>0,x-1, abs(x))
[1] NA  4  0  3


Please spend some time with an R tutorial or two -- there are many
good ones on the web. This is basic stuff covered in them.


Cheers,
Bert

Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Thu, Feb 9, 2017 at 11:30 AM, Alejandro <a.gonzalezvoyer at gmail.com> wrote:
> Hello,
>
> I’ve tried googling for an answer to this but I simply can’t find something that fixes my problem. I have a long numerical vector with positive, negative and null values. I want to revert the sign of the positive and negative values and for zero to remain zero. I’ve written a function that works, except that my vector has missing values (NA) and I need to keep those as missing values. How could I add that to this function:
>
> revertsign<-function(x){
>  if (x > 0) {x <- x*-1}
>    else
> if (x < 0) {x <- abs(x)}
>  else
>    if (x == 0) {x <- 0}
>  }
>
> I’ve tried if(is.na(x)) {x <- NA} but I get the following error message: Error in if (x > 0) { : missing value where TRUE/FALSE needed. Which I guess is the first NA in the vector which fails the first if of the function.
>
> I use supply() to run the function on a vector.
>
> Thanks for any assistance.
>
> Cheers
>
> Alejandro
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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