Coercing to bit vector
# S3 method for class '`NULL`'
as.bit(x, ...)
# S3 method for class 'bit'
as.bit(x, ...)
# S3 method for class 'logical'
as.bit(x, ...)
# S3 method for class 'integer'
as.bit(x, ...)
# S3 method for class 'double'
as.bit(x, ...)
# S3 method for class 'bitwhich'
as.bit(x, ...)
# S3 method for class 'which'
as.bit(x, length = attr(x, "maxindex"), ...)
# S3 method for class 'ri'
as.bit(x, ...)
as.bit(x = NULL, ...)an object of class bit(), logical(),
integer(), bitwhich() or an integer from
as.which() or a boolean ff
further arguments
the length of the new bit vector
is.bit returns FALSE or TRUE, as.bit returns a vector
of class 'bit'
Coercing to bit is quite fast because we use a double loop that fixes each word in a processor register
as.bit(`NULL`): method to coerce to bit() (zero length) from NULL
as.bit(integer): method to coerce to bit() from
integer() (0L and NA become FALSE,
everthing else becomes TRUE)
as.bit(double): method to coerce to bit() from
double() (0 and NA become FALSE, everthing
else becomes TRUE)
as.bit(bitwhich): method to coerce to bit() from bitwhich()
Zero is coerced to FALSE, all other numbers including NA are coerced to TRUE. This differs from the NA-to-FALSE coercion in package ff and may change in the future.
CoercionToStandard, as.booltype(), as.bit(),
as.bitwhich() , as.which(), as.ri(), ff::as.hi(), ff::as.ff()
as.bit(c(0L, 1L, 2L, -2L, NA))
#> bit length=5 occupying only 1 int32
#> 1 2 3 4 5
#> FALSE TRUE TRUE TRUE FALSE
as.bit(c(0, 1, 2, -2, NA))
#> bit length=5 occupying only 1 int32
#> 1 2 3 4 5
#> FALSE TRUE TRUE TRUE FALSE
as.bit(c(FALSE, NA, TRUE))
#> bit length=3 occupying only 1 int32
#> 1 2 3
#> FALSE FALSE TRUE