[R] testing for integer

Faheem Mitha faheem at email.unc.edu
Sat Feb 24 21:59:51 CET 2001

Dear People,

Consider the following fragment of R code 

choose <- function(n,r)
  if( is.integer(n) && is.integer(r) && n > 0 && r >= 0 )
      .C("choose",as.double(n),as.double(r),comb = double(1))$comb
  else stop("n must be a positive integer and r a non-negative integer.")

This is a practice function (n choose r), which I wrote using a call to C
code. Unfortunately, there is the following problem. I thought I would put
in error checking for whether the arguments were integers. However,
is.integer(1), for example, returns FALSE. However is.numeric(1) returns
TRUE. It seems that explicit coercion is required for this ie.  
is.integer(as.integer(1)) returns true However, I can't use as.integer,
because it is too aggressive for just error checking: it rounds off the
value to the greatest integer less than. Can anyone suggest a suitable
method of checking for an integer in this case?

                                 Sincerely, Faheem Mitha.

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list