> Hi, > > 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: I think you mean the "former", a bug. and I agree entirely, see the following " 2 x 2 " comparison : > N <- 5000000000000 * 8^-(0:7) > as.integer(N) [1] NA NA NA NA 1220703125 152587890 19073486 2384185 Warning message: NAs introduced by coercion > as.integer(-N) [1] NA NA NA NA -1220703125 -152587890 -19073486 [8] -2384185 Warning message: NAs introduced by coercion > as.integer(as.character(N)) [1] 2147483647 2147483647 2147483647 2147483647 1220703125 152587890 19073486 2384185 Warning message: inaccurate integer conversion in coercion > as.integer(as.character(-N)) [1] NA NA NA NA -1220703125 -152587890 -19073486 [8] -2384185 Warning message: inaccurate integer conversion in coercion > ‘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 > with: > > 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. Yes. The message is less a problem than the bug, but I agree we should try to improve it. Martin > -- > Hervé Pagès > ................... ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel