xor.default | R Documentation |
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.
Boolean operations on bit()
vectors are extremely fast because they are
implemented using C's bitwise operators. Boolean operations on or bitwhich()
vectors are even faster, if they represent very skewed selections.
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)
An object of class booltype()
or logical()
xor(default)
: default method for xor()
xor(logical)
: logical()
method for xor()
xor(bit)
: bit()
method for xor()
xor(bitwhich)
: bitwhich()
method for xor()
xor(booltype)
: booltype()
method for xor()
`!`(bit)
: bit()
method for !
&
: bit()
method for &
|
: bit()
method for |
==
: bit()
method for ==
!=
: bit()
method for !=
`!`(bitwhich)
: bitwhich()
method for !
&
: bitwhich()
method for &
|
: bitwhich()
method for |
==
: bitwhich()
method for ==
!=
: bitwhich()
method for !=
&
: booltype()
method for &
|
: booltype()
method for |
==
: booltype()
method for ==
!=
: booltype()
method for !=
Jens Oehlschlägel
booltypes()
, Logic
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.