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

Bert Gunter bgunter.4567 at gmail.com
Fri Feb 10 01:25:07 CET 2017

```Oh, after seeing John's answer, I realized I misread your x*(-1) bit
as x-1. His reply is how it should be done.

The sillier ifelse() solution is:

ifelse(x>0,-x,abs(x) )

My remark about going through a tutorial are still germane, however.

-- 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