[R] 'combinations' in gtools and stack overflow

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Feb 14 18:38:38 CET 2005


On Mon, 14 Feb 2005, Warnes, Gregory R wrote:

> The documentation for 'combinations' explicitly describes this problem:

Not so: this is misinformation send in reply to correct and helpful 
comments.

>  Details:
>
>     Caution: The number of combinations and permutations increases
>     rapidly with 'n' and 'r'!.
>
>     To use values of 'n' above about 45, you will need to increase R's
>     recursion limit.  See the 'expression' argument to the 'options'
>     command for details on how to do this.
>
> and gives an example of the solution:
>
>     # To use large 'n', you need to change the default recusion limit
>     options(expressions=1e5)
>     cmat <- combinations(300,2)
>     dim(cmat) # 44850 by 2

Let me repeat for you what he said he did:

>>> library(gtools)
>>> options(expressions=1e5)
>>> combinations(500, 3, 1:500)
>>> # or combinations(400, 2, 1:400)
>>> Error: protect(): stack overflow

Do you notice the second line there this time around?

The message is not about the number of expressions, but about the 
sizd of the protect stack.

R --max-ppsize=50000

allows combinations(400, 2, 1:400) to work, as I correctly suggested.

>
> -Greg
>
>> -----Original Message-----
>> From: r-help-bounces at stat.math.ethz.ch
>> [mailto:r-help-bounces at stat.math.ethz.ch]On Behalf Of Prof
>> Brian Ripley
>> Sent: Monday, February 14, 2005 10:23 AM
>> To: Ho-Joon Lee
>> Cc: r-help at stat.math.ethz.ch
>> Subject: Re: [R] 'combinations' in gtools and stack overflow
>>
>>
>> On Mon, 14 Feb 2005, Ho-Joon Lee wrote:
>>
>>> Dear R-users,
>>>
>>> Let me ask about the 'stack overflow' error which I got
>> when I used the
>>> function 'combinations' in "gtools".
>>>
>>> The following is what I did:
>>>
>>> ---------
>>> library(gtools)
>>> options(expressions=1e5)
>>> combinations(500, 3, 1:500)
>>> # or combinations(400, 2, 1:400)
>>> Error: protect(): stack overflow
>>> ---------
>>>
>>> How can I overcome this error? Is there perhaps any other
>> function to do this
>>> more efficiently?
>>
>> R --help lists a flag that you can use to increase the size
>> of the protect
>> stack.  It is also described in `An Introduction to R'.
>>
>> --
>> Brian D. Ripley,                  ripley at stats.ox.ac.uk
>> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
>> University of Oxford,             Tel:  +44 1865 272861 (self)
>> 1 South Parks Road,                     +44 1865 272866 (PA)
>> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
>
> LEGAL NOTICE\ Unless expressly stated otherwise, this messag...{{dropped}}
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list