[R] Error : sink stack is full

Barry Rowlingson B.Rowlingson at lancaster.ac.uk
Fri Mar 26 11:11:04 CET 2004


ZABALZA-MEZGHANI Isabelle wrote:
> Hello,
> 
> I have implemented a method which uses sink to follow the progression status
> of an iterative process (Below is part of the code)
> 
> 
> I have already used such kind of code with no problem. Today, I get a "sink
> stack is full" error.
> I wonder if it could be linked with the fact that my .RData has a large size
> (around 7 Mo) ???
> 

  Every time you do a sink('filename') call R keeps track of where the 
output was going before, so when you do sink() it goes back. Example:

  sink('fnord')
   print(1)  # goes to file 'fnord'
     sink('foobar')
       print(2) # goes to file 'foobar'
     sink()
   print(3) # goes to 'fnord'
  sink()
    # now back to normal.

  R has a limit on how deeply nested sink()s can be. A quick test:

 > for(f in 1:1000){
+ sink(paste(f,'-sink'))
+ print(1)
+ }

  got up to 20. This is defined in connections.c in the source code:

src/main/connections.c:#define NSINKS 21

  If you really want to nest sink()s deeper than that then you will have 
to change this parameter and recompile R. More likely is that you are 
doing unneccessary sink()s because of the iterative nature of your code 
(which wasn't attached because I think R-news strips out attachments).

Baz




More information about the R-help mailing list