I'd appreciate any idea on how to do it, so we can compare them with each other.
Here is one to start out with:
is.natural <- function(x)
{
x>0 && identical(round(x), x)
}
The docs suggest a similar method, so I doubt you'll get any better. Remember to include an epsilon to take into account precision issues!
is.naturalnumber <-
function(x, tol = .Machine$double.eps^0.5) x > tol & abs(x - round(x)) < tol
is.naturalnumber(1) # is TRUE
(x <- seq(1,5, by=0.5) )
is.naturalnumber( x ) #--> TRUE FALSE TRUE ...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With