Roger Bivand wrote: > > On Tue, 5 Dec 2006, Yoni Schamroth wrote: > >> Hi, >> >> I am attempting to query a data frame from a mysql database. >> One of the variables is a unique identification number ("numeric") 18 >> digits >> long. >> I am struggling to retrieve this variable exactly without any rounding. > > Read it as a character - a double is a double: > >> x <- 6527600583317876352 >> y <- 6527600583317876380 >> all.equal(x,y) > [1] TRUE >> storage.mode(x) > [1] "double" > > and why they are equal is a FAQ (only ~16 digits in a double). Integer is > 4-byte. Since they are IDs, not to be used for math, leave them as > character strings - which they are, like telephone numbers. >
Resurrecting this post for a moment, the same issue arose when interfacing R with a Postgres database using the bigint data type (a signed 64-bit integer ranging from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 as of this writing). While the underlying cause is summarized above, I'd like to recommend the inclusion of a 64-bit integer data type into the R base. For performance reasons, I use R to independently generate a unique transaction ID that is equivalent to the Postgres-generated bigint (with some consistency checks -- generally bad design, but vastly quicker than querying the database for the same value). I currently generate a string representation and pass that to the DBI, though the process is cumbersome and likely not as efficient as an arithmetic equivalent (particularly when using a 64-bit processor architecture). Furthermore, there are additional gyrations that need to occur when querying the database for bigint values. Do significant practical challenges exist in the implementation of a 64-bit integer that would outweigh the faster and cleaner compatibility with database backends? -- View this message in context: http://www.nabble.com/-R--double-precision-tp7708057p25048915.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.