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.gonzalezvo...@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@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. ______________________________________________ R-help@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.