В чем разница между короткими (&, |) и длинными (&&, ||) формами И, ИЛИ логическими операторами в R?

Возможный дубликат:
R: subset() логический и оператор для условий цепочки должен быть, а не &

В чем разница между короткими (&, |) и длинными (&&, ||) формами AND, OR логическими операторами в R?

Например:

  • x==0 & y==1
  • x==0 && y==1
  • x==0 | y==1
  • x==0 || y==1

Я всегда использую короткие формы в своем коде. Есть ли у вас какие-либо недостатки?

Ответ 1

& и | - являются элементарными и могут использоваться с векторными операциями, тогда как || и && всегда генерируют одиночные TRUE или FALSE

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

Итак, && и || обычно используются в операторах if (condition) state_1 else state_2, так как дело с векторами длины 1