On 2018-04-18 17:38, Steven McKinney wrote:
Hi Colton,

You could divide your write task into chunks that do not violate the 2^31-1 
limit.

write.table has an append argument (default FALSE).

Figure out a row chunk size nri < nr such that nri * nc is under 2^31-1 and use
write.table() to write that out.

Then use
write.table(  append = TRUE, )
for the next chunk of rows, looping over chunks until done.  Two chunks will 
get your 2.8 billion entries done.


      Magnificent:  Is that something that could be implemented inside write.table?


      Spencer

Best

Steve



Steven McKinney, Ph.D.

Statistician
Molecular Oncology and Breast Cancer Program
British Columbia Cancer Research Centre




-----Original Message-----
From: R-devel [mailto:r-devel-boun...@r-project.org] On Behalf Of Tousey,
Colton
Sent: April-18-18 2:08 PM
To: r-c...@r-project.org; simon.urba...@r-project.org; R-devel@r-
project.org
Subject: [Rd] R Bug: write.table for matrix of more than 2, 147, 483, 648
elements

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.

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.tou...@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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to