[R] Sweave Executes Package Functions Twice

Dario Strbenac D.Strbenac at garvan.org.au
Fri Apr 15 13:00:20 CEST 2011


I've got something strange going on. I'm trying to compile a vignette using Sweave("vignette.Rnw"), and in the first code chunk that illustrates an example, I noticed from the output text I have inside the function, that it is running it twice, because the sequence of message() statements is output on screen twice, and takes twice as long to do.

Processing sample 1
Processing sample 2
Processing sample 3
Processing sample 1
Processing sample 2
Processing sample 3

If I open up a new R session, and copy and paste the lines of code from the .Rnw one by one, the function isn't called twice - only one complete set of progress outputs show.

I tried using debug() to get more of an idea of what was happening. The function is called enrichmentPlot, so I did debug(enrichmentPlot), then Sweave("vignette.Rnw"). Execution pauses when it gets to the right code chunk, then I type in "n" at the Browse[2]> prompt, but I don't get any output from debug, like "debugging in:", but it runs for a while and I get all of the messages from within my function, then execution pauses again. But just before it pauses I get the debug output :

debugging in: enrichmentPlot(samples.list, 300)
debug: standardGeneric("enrichmentPlot")

Then I enter "n", and it runs the same code all over again.

...       ... # Same progress outputs from inside my function.
exiting from: enrichmentPlot(samples.list, 300)

I have the current 2.13.0 version of R. I'm sure I've done something wrong, I just can't figure out what. Thanks for any help.

Dario Strbenac
Research Assistant
Cancer Epigenetics
Garvan Institute of Medical Research
Darlinghurst NSW 2010

More information about the R-help mailing list