This function compares two vectors (or arrays) of values and returns the near-equality status of corresponding elements. As with all.equal()
, the intent is primarily to get around machine limits of representation of floating-point numbers. For integer comparison, just use the base ==
operator.
approxeq(x, y, tolerance = .Machine$double.eps^0.5, ...)
A vector of the same length as the longer of x
or y
, consisting of TRUE
and FALSE
elements, depending on whether the corresponding elements of x
and y
are within the approximate equality precision desired.
The two input items, typically vectors or arrays of data.
Set the precision to which abs(x[j] - y[j])
will be compared. The default argument provided is the R-standard value for floats.
Not used at this time.
Carl Witthoft, carl@witthoft.com
If x
and y
are of different lengths, the shorter one is recycled and a warning issued.
x<-1:10
y<-x+runif(10)*1e-6
approxeq(x,y) #all FALSE
approxeq(x,y,tolerance=1e-5) #mostly TRUE, probably
Run the code above in your browser using DataLab