[Rd] R Bug: write.table for matrix of more than 2, 147, 483, 648 elements

Duncan Murdoch murdoch.duncan at gmail.com
Thu Apr 19 02:06:40 CEST 2018


On 18/04/2018 5:08 PM, Tousey, Colton wrote:
> Hello,
> 
> I want to report a bug in R that is limiting my capabilities to export a matrix with write.csv or write.table with over 2,147,483,648 elements (C's int limit). I found this bug already reported about before: https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17182. However, there appears to be no solution or fixes in upcoming R version releases.
> 
> The error message is coming from the writetable part of the utils package in the io.c source code(https://svn.r-project.org/R/trunk/src/library/utils/src/io.c):
> /* quick integrity check */
>                  if(XLENGTH(x) != (R_len_t)nr * nc)
>                      error(_("corrupt matrix -- dims not not match length"));
> 
> The issue is that nr*nc is an integer and the size of my matrix, 2.8 billion elements, exceeds C's limit, so the check forces the code to fail.

Yes, looks like a typo:  R_len_t is an int, and that's how nr was 
declared.  It should be R_xlen_t, which is bigger on machines that 
support big vectors.

I haven't tested the change; there may be something else in that 
function that assumes short vectors.

Duncan Murdoch

> 
> My version:
>> R.Version()
> $platform
> [1] "x86_64-w64-mingw32"
> 
> $arch
> [1] "x86_64"
> 
> $os
> [1] "mingw32"
> 
> $system
> [1] "x86_64, mingw32"
> 
> $status
> [1] ""
> 
> $major
> [1] "3"
> 
> $minor
> [1] "4.3"
> 
> $year
> [1] "2017"
> 
> $month
> [1] "11"
> 
> $day
> [1] "30"
> 
> $`svn rev`
> [1] "73796"
> 
> $language
> [1] "R"
> 
> $version.string
> [1] "R version 3.4.3 (2017-11-30)"
> 
> $nickname
> [1] "Kite-Eating Tree"
> 
> Thank you,
> Colton
> 
> 
> Colton Tousey
> Research Associate II
> P: 816.585.0300   E: colton.tousey at kc.frb.org
> FEDERAL RESERVE BANK OF KANSAS CITY
> 1 Memorial Drive   *   Kansas City, Missouri 64198   *   www.kansascityfed.org
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list