[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