The || operator will always return a result of type 'logical' and length 1.
You gave it two operands of length 0, so it returned the logical value NA,
meaning it had no idea what the result should be.  If you give it operands
of length > 1, it will use the only the first elements of them.  (S and S+
considered length 0 operands to || and && an error and warned about
length>1 operands, but R makes no comment about either case).

Perhaps you want to use the | operator, which acts like == and +, returning
a result as long as the longer of its operands, unless one operand has zero
elements, in which case it returns a length 0 result.


Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Sun, Aug 9, 2015 at 8:45 PM, Ragia Ibrahim <ragi...@hotmail.com> wrote:

> Dear Group,
> Kindly,
>
> I have those two lines
> if(  (z_nebla==0) ||  (z_nebla_dash==0) )
>            CM <- 0         else
>
>                CM <-  0.5 *(1/a)  +   0.5*(1/b)
>
> when running it
>
> I got this
>
> z_nebla==0)
> logical(0)
> > (z_nebla_dash==0)
> logical(0)
> > (z_nebla==0) ||  (z_nebla_dash==0)
> [1] NA
>
>
> why  (z_nebla==0) ||  (z_nebla_dash==0)
> gives me NA ?
>
> thanks in advance
> Ragia
>
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>

        [[alternative HTML version deleted]]

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

Reply via email to