# [R] Having problems with the ifelse and negative numbers

Eric Berger er|cjberger @end|ng |rom gm@||@com
Mon Dec 9 14:44:26 CET 2019

```Hi Bob,
You wrote "the following error message" -
when in fact it is a Warning and not an error message. I think your
code does what you hoped it would do, in the sense it successfully
calculates the sqrt(abs(negativeNumber)), where appropriate.

If you want to run the code without seeing this warning message you can run

ifelse( A < 0, suppressWarnings(sqrt(-A)), A )

and you should be fine.

HTH,
Eric

On Mon, Dec 9, 2019 at 3:18 PM Kevin Thorpe <kevin.thorpe using utoronto.ca> wrote:
>
> The sqrt(-A) is evaluated for all A. The result returned is conditional on the first argument but the other two arguments are evaluated on the entire vector.
>
> Kevin
>
> --
> Kevin E. Thorpe
> Head of Biostatistics,  Applied Health Research Centre (AHRC)
> Li Ka Shing Knowledge Institute of St. Michael's
> Assistant Professor, Dalla Lana School of Public Health
> University of Toronto
> email: kevin.thorpe using utoronto.ca  Tel: 416.864.5776  Fax: 416.864.3016
>
>
> ﻿On 2019-12-09, 7:58 AM, "R-help on behalf of rsherry8" <r-help-bounces using r-project.org on behalf of rsherry8 using comcast.net> wrote:
>
>     Please consider the following two R statements:
>          A =  runif(20, min=-1,max=1)
>          ifelse( A < 0, sqrt(-A), A )
>
>     The second statement produces the following error message:
>          rt(-A) : NaNs produced
>
>     I understand that you cannot take the square root of a negative number
>     but I thought the condition A < 0
>     would take care of that issue. It appears not to be.
>
>     What am I missing?
>
>     Thanks,
>     Bob
>
>     ______________________________________________
>     R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>     https://stat.ethz.ch/mailman/listinfo/r-help