isZero

0th

Percentile

Checks if a value is (close to) zero or not

Checks if a value (or a vector of values) is (close to) zero or not where "close" means if the absolute value is less than neps*eps. Note that x == 0 will not work in all cases. By default eps is the smallest possible floating point value that can be represented by the running machine, i.e. .Machine$double.eps and neps is one. By changing neps it is easy to adjust how close to zero "close" means without having to know the machine precision (or remembering how to get it).

Keywords
logic
Usage
## S3 method for class 'default':
isZero(x, neps=1, eps=.Machine$double.eps, ...)
Arguments
x
A vector of values.
eps
The smallest possible floating point.
neps
A scale factor of eps specifying how close to zero "close" means. If eps is the smallest value such that 1 + eps != 1, i.e. .Machine$double.eps, neps must be greater or equ
...
Not used.
Value

  • Returns a logical vector indicating if the elments are zero or not.

See Also

all.equal(). Comparison. .Machine.

Aliases
  • isZero.default
  • isZero
Examples
x <- 0
print(x == 0)      # TRUE
print(isZero(x))   # TRUE

x <- 1
print(x == 0)      # FALSE
print(isZero(x))   # FALSE

x <- .Machine$double.eps
print(x == 0)      # FALSE
print(isZero(x))   # FALSE

x <- 0.9*.Machine$double.eps
print(x == 0)      # FALSE
print(isZero(x))   # TRUE

# From help(Comparisions)
x1 <- 0.5 - 0.3
x2 <- 0.3 - 0.1
print(x1 - x2)
print(x1 == x2)                           # FALSE on most machines
print(identical(all.equal(x1, x2), TRUE)) # TRUE everywhere
print(isZero(x1-x2))                      # TRUE everywhere
Documentation reproduced from package R.utils, version 1.3.3, License: LGPL (>= 2.1)

Community examples

Looks like there are no examples yet.