[Rd] behavior of as.integer("5000000000")

Hervé Pagès hpages at fredhutch.org
Tue Apr 14 07:19:50 CEST 2015


   > as.integer("5000000000")
   [1] 2147483647
   Warning message:
   inaccurate integer conversion in coercion

   > as.integer("-5000000000")
   [1] NA
   Warning message:
   inaccurate integer conversion in coercion

Is this a bug or a feature? The man page suggests it's the latter:

   ‘as.integer’ attempts to coerce its argument to be of integer
   type.  The answer will be ‘NA’ unless the coercion succeeds.

even though someone could always argue that coercion of "5000000000"
succeeded (for some definition of "succeed").

Also is there any reason why the warning message is different than

   > as.integer(-5000000000)
   [1] NA
   Warning message:
   NAs introduced by coercion

In the case of as.integer("-5000000000"), it's not really that the
conversion was "inaccurate", it's a little bit worse than that. And
knowing that NAs where introduced by coercion is important.


Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

More information about the R-devel mailing list