n <- 500
x <- rnorm(n)
y <- x + rnorm(n, sd = 0.0001)
plot(relative_difference(x, y), x)
plot(relative_difference(x, y, "difference"), x)
# They do approximately the same:
max(relative_difference(relative_difference(x, y),
relative_difference(x, y, "difference")))
# But "all.equal" is _much_ slower:
microbenchmark::microbenchmark(all_equal = relative_difference(x, y),
difference = relative_difference(x, y,
"difference")
)
# Takes sign into account:
plot(relative_difference(x, y, "change"), x)
max(relative_difference(relative_difference(x, y),
abs(relative_difference(x, y, "change"))))
Run the code above in your browser using DataLab