Dear all, I see from some previous threads that support for 64-bit integers in R may be an aim for future versions, but in the meantime I'm wondering whether it is possible to read in integers of greater than 32 bits at all. Judging from ?readBin, it should be possible to read 8-byte integers to some degree, but it is clearly limited in practice by R's internally 32-bit integer type:
> x <- as.raw(c(0,0,0,0,1,0,0,0)) > (readBin(x,"integer",n=1,size=8,signed=F,endian="big")) [1] 16777216 > x <- as.raw(c(0,0,0,1,0,0,0,0)) > (readBin(x,"integer",n=1,size=8,signed=F,endian="big")) [1] 0 For values that fit into 32 bits it works fine, but for larger values it fails. (I'm a bit surprised by the zero - should the value not be NA if it is out of range?) The value can be represented as a double, though: > 4294967296 [1] 4294967296 I wouldn't expect readBin() to return a double if an integer was requested, but is there any way to get the correct value out of it? I suppose one could read the bytes into a raw vector and then reconstruct the number manually from that, but is there a more elegant or built-in solution that I'm not aware of? This is R 2.12.1 on Mac OS X.6.7 - .Machine$sizeof.long is 8. Many thanks, Jon ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel