和&之间的区别是什么?和&&,|和||在R?

时间:2013-04-16 02:34:50

标签: r

为什么有四个逻辑运算符:

&, &&
|, ||

使用方法有何不同?

是的,我检查了文档,但我有点困惑。文档说:

 ‘&’ and ‘&&’ indicate logical AND and ‘|’ and ‘||’ indicate
 logical OR.  The shorter form performs elementwise comparisons in
 much the same way as arithmetic operators.  The longer form
 evaluates left to right examining only the first element of each
 vector.  Evaluation proceeds only until the result is determined.
 The longer form is appropriate for programming control-flow and
 typically preferred in ‘if’ clauses.

我认为一个例子将清楚地展示它们。感谢。

1 个答案:

答案 0 :(得分:21)

主要差异如下......

  1. 长形(&&或||)短路,这意味着它只能通过验证第一个元素来识别结果。在做&&时,如果前两个元素的比较导致错误,则比较下一组元素也将导致False。所以,它返回false。在做||如果比较在前几个元素中得到真值,我们可以自信地说任何进一步的验证都不会改变结果,因此返回True

  2. 对于整个向量,将继续执行简短形式,并创建结果向量并将其返回。

  3. 希望这有帮助。

      

    &安培;和&&表示逻辑AND和|和||表示逻辑OR。该   较短的形式执行元素比较与大致相同   算术运算符。较长的表单从左到右进行评估   仅检查每个向量的第一个元素。评估进行   直到确定结果。较长的形式是合适的   用于编程控制流程,通常在if子句中使用。

    来源:http://stat.ethz.ch/R-manual/R-patched/library/base/html/Logic.html