| Logical operators There are two sorts of logical operators: those that accept and return vectors of any length (elementwise operators: !, |, &, xor()) and those that only evaluate the first element in each argument (&&, ||). The second sort is primarily used as the cond argument to the if function. | Logical Operator | Meaning | Syntax | | ! | Not | !x | | & | element-wise (vectorized) and | x & y | | && | and (single element only) | x && y | | | element-wise (vectorized) or | | | | | xor | element-wise (vectorized) exclusive OR | xor(x,y) | Note that the || operator evaluates the left condition and if the left condition is TRUE the right side is never evaluated. This can save time if the first is the result of a complex operation. The && operator will likewise return FALSE without evaluation of the second argument when the first element of the first argument is FALSE. To check whether a value is a logical you can use the is.logical() function. |