bc.b

Broadcasted Boolean Operations

Description

The bc.b() method performs broadcasted logical (or Boolean) operations on 2 arrays.

Please note that these operations will treat the input as logical.
Therefore, something like bc.b(1, 2, β€œ==”) returns TRUE, because both 1 and 2 are TRUE when treated as logical.

For regular relational operators, see bc.rel.

Usage

bc.b(x, y, op, ...)

## S4 method for signature 'ANY'
bc.b(x, y, op)

Arguments

x, y conformable vectors/arrays of type logical, numeric, or raw.
Note that input with type of double will be coerced to integer.
op a single string, giving the operator.
Supported Boolean operators: &, |, xor
Supported relational operators: ==, !=.
… further arguments passed to or from methods.

Value

Normally:
A logical array/vector as a result of the broadcasted Boolean operation.

If both x and y are type of raw:
A raw array/vector as a result of the broadcasted Boolean operation, where 01 codes for TRUE and 00 codes for FALSE.
This is convenient as raw requires less memory space than logical.

See Also

broadcast_operators

Examples

library("broadcast")

x.dim <- c(4:2)
x.len <- prod(x.dim)
x.data <- sample(c(TRUE, FALSE, NA), x.len, TRUE)
x <- array(x.data, x.dim)
y <- array(1:50, c(4,1,1))

bc.b(x, y, "&")
#> , , 1
#> 
#>       [,1]  [,2]  [,3]
#> [1,] FALSE FALSE FALSE
#> [2,] FALSE  TRUE  TRUE
#> [3,] FALSE    NA FALSE
#> [4,]  TRUE FALSE    NA
#> 
#> , , 2
#> 
#>       [,1]  [,2] [,3]
#> [1,] FALSE FALSE   NA
#> [2,]  TRUE    NA TRUE
#> [3,]    NA FALSE   NA
#> [4,]    NA    NA   NA
bc.b(x, y, "|")
#> , , 1
#> 
#>      [,1] [,2] [,3]
#> [1,] TRUE TRUE TRUE
#> [2,] TRUE TRUE TRUE
#> [3,] TRUE TRUE TRUE
#> [4,] TRUE TRUE TRUE
#> 
#> , , 2
#> 
#>      [,1] [,2] [,3]
#> [1,] TRUE TRUE TRUE
#> [2,] TRUE TRUE TRUE
#> [3,] TRUE TRUE TRUE
#> [4,] TRUE TRUE TRUE
bc.b(x, y, "xor")
#> , , 1
#> 
#>       [,1]  [,2]  [,3]
#> [1,]  TRUE  TRUE  TRUE
#> [2,]  TRUE FALSE FALSE
#> [3,]  TRUE    NA  TRUE
#> [4,] FALSE  TRUE    NA
#> 
#> , , 2
#> 
#>       [,1] [,2]  [,3]
#> [1,]  TRUE TRUE    NA
#> [2,] FALSE   NA FALSE
#> [3,]    NA TRUE    NA
#> [4,]    NA   NA    NA
bc.b(x, y, "==")
#> , , 1
#> 
#>       [,1]  [,2]  [,3]
#> [1,] FALSE FALSE FALSE
#> [2,] FALSE  TRUE  TRUE
#> [3,] FALSE    NA FALSE
#> [4,]  TRUE FALSE    NA
#> 
#> , , 2
#> 
#>       [,1]  [,2] [,3]
#> [1,] FALSE FALSE   NA
#> [2,]  TRUE    NA TRUE
#> [3,]    NA FALSE   NA
#> [4,]    NA    NA   NA
bc.b(x, y, "!=")
#> , , 1
#> 
#>       [,1]  [,2]  [,3]
#> [1,]  TRUE  TRUE  TRUE
#> [2,]  TRUE FALSE FALSE
#> [3,]  TRUE    NA  TRUE
#> [4,] FALSE  TRUE    NA
#> 
#> , , 2
#> 
#>       [,1] [,2]  [,3]
#> [1,]  TRUE TRUE    NA
#> [2,] FALSE   NA FALSE
#> [3,]    NA TRUE    NA
#> [4,]    NA   NA    NA