[R] Is.integer and testing for integers

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Thu Jun 30 17:39:11 CEST 2005



Tuszynski, Jaroslaw W. wrote:
>  Hi,
> 
> I was trying to figure out if there is a function in R that tests if R
> object contains only integers. I though "is.integer" would be it, but this
> function only checks "whether its argument is of integer type or not". As a
> result
> 	x = (1:5)^2
> 	is.integer(x)
> Returns false. Of course I can write my own function like
> "!any(x!=as.integer(x))" but I am just trying to make sure I am not
> reinventing the wheel.
> 
> Jarek

Since "^" returns a double, it's no wonder is.integer(x) didn't work as 
you expected. Perhaps you want something more like

is.int <- function(x, tol = .Machine$double.eps) {
   (x - floor(x)) < tol
}
is.int((1:5)^2)

HTH,

--sundar




More information about the R-help mailing list