The limit to the output object for rowsum function in R seems to be 2^31-1 (maximum integer value). The input object can be larger than this. Does anyone have a work-around for this that retains rowsum's efficiency?
testm <- matrix(1,nrow=2^10+2,ncol=2^21)
testg <- c(1:(2^10-1),1,1,1)
testr <- rowsum(testm,group = testg)
str(testr)
num [1:1023, 1:2097152] 4 1 1 1 1 1 1 1 1 1 ...
- attr(*, "dimnames")=List of 2 ..$ : chr [1:1023] "1" "2" "3" "4" ... ..$ : NULL
testg <- c(1:2^10,1,1)
testr <- rowsum(testm,group = testg)
*** caught segfault *** address 0x7f7bdaa59030, cause 'memory not mapped'
Traceback: 1: rowsum.default(testm, group = testg) 2: rowsum(testm, group = testg)