Boolean operators and functions
Boolean NEGATION '!', AND '&', OR '|' and EXCLUSIVE OR xor', see Logic.
## Default S3 method: xor(x, y) ## S3 method for class 'logical' xor(x, y) ## S3 method for class 'bit' !x ## S3 method for class 'bit' e1 & e2 ## S3 method for class 'bit' e1 | e2 ## S3 method for class 'bit' e1 == e2 ## S3 method for class 'bit' e1 != e2 ## S3 method for class 'bit' xor(x, y) ## S3 method for class 'bitwhich' !x ## S3 method for class 'bitwhich' e1 & e2 ## S3 method for class 'bitwhich' e1 | e2 ## S3 method for class 'bitwhich' e1 == e2 ## S3 method for class 'bitwhich' e1 != e2 ## S3 method for class 'bitwhich' xor(x, y) ## S3 method for class 'booltype' e1 & e2 ## S3 method for class 'booltype' e1 | e2 ## S3 method for class 'booltype' e1 == e2 ## S3 method for class 'booltype' e1 != e2 ## S3 method for class 'booltype' xor(x, y) xor(x, y)
x |
a |
y |
a |
e1 |
a |
e2 |
a |
The binary operators and function xor can now combine any is.booltype vectors.
They now recycle if vectors have different length. If the two arguments have different booltypes the return value corresponds to the lower booltype of the two.
The xor function has been made generic and xor.default has
been implemented much faster than R's standard xor.
This was possible because actually boolean function xor and
comparison operator != do the same (even with NAs), and != is
much faster than the multiple calls in (x | y) & !(x & y)
default: default method for xor
Jens Oehlschlägel
x <- c(FALSE, FALSE, FALSE, NA, NA, NA, TRUE, TRUE, TRUE) y <- c(FALSE, NA, TRUE, FALSE, NA, TRUE, FALSE, NA, TRUE) x|y x|as.bit(y) x|as.bitwhich(y) x|as.which(y) x|ri(1,1,9)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.