Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between short (&,|) and long (&&, ||) forms of AND, OR logical operators in R? [duplicate]

Possible Duplicate:
R: subset() logical-and operator for chaining conditions should be & not &&

What is the difference between short (&,|) and long (&&, ||) forms of AND, OR logical operators in R?

For example:

  1. x==0 & y==1
  2. x==0 && y==1
  3. x==0 | y==1
  4. x==0 || y==1

I always use the short forms in my code. Does it have any handicaps?

like image 431
Mehper C. Palavuzlar Avatar asked Oct 31 '11 12:10

Mehper C. Palavuzlar


1 Answers

& and | - are element-wise and can be used with vector operations, whereas, || and && always generate single TRUE or FALSE

theck the difference:

> x <- 1:5
> y <- 5:1
> (x > 2) & (y < 3) 
  [1] FALSE FALSE FALSE  TRUE  TRUE
> (x > 2) && (y < 3) # here operaand && takes only 1'st elements from logical
                     # vectors (x>2) and (y<3)
> FALSE

So, && and || are commonly used in if (condition) state_1 else state_2 statements, as dealing with vectors of length 1

like image 172
Max Avatar answered Oct 21 '22 09:10

Max