Skip to content

sweave options with variable

5 messages · Duncan Murdoch, Kai Ying, Gabor Grothendieck +1 more

#
On 11-04-17 2:41 AM, Kai Ying wrote:
You can't do that, but you can get a similar effect this way:

<<echo=FALSE>>=
needRun <- TRUE
@

...

<<thecode,eval=FALSE>>=
someSlowFunction()
@

<<echo=FALSE>>=
if (needRun) {
<<thecode>>
}
@

Or you could use cacheSweave or weaver for caching, which may do what 
you want, or write your own Sweave driver to do exactly what you want.

Duncan Murdoch
#
On Sun, Apr 17, 2011 at 11:04 AM, Kai Ying <yingk at iastate.edu> wrote:
You may be better off just directly emit the latex from R (not using
Sweave at all).  Another alternative is the brew package.
#
[Forgot to cc: the list]

Hi.
On Sun, Apr 17, 2011 at 8:04 AM, Kai Ying <yingk at iastate.edu> wrote:
You can do exactly this by embedding your Sweave document with RSP markup, e.g.

<% needRun <- TRUE %>

<<eval=<%=needRun%>>>=
someSlowFunction()
@

To compile this into a valid Sweave document/file, you have to append
filename extension *.rsp, e.g. report.Rnw.rsp.  Then compile it as:

library("R.rsp");
rsp("report.Rnw.rsp", postprocess=FALSE);

which outputs a file report.Rnw containing:

<<eval=TRUE>>=
someSlowFunction()
@

If you also want to run Sweave on this and generate a PDF you can do
everything in one go (using the default postprocess=TRUE):

library("R.rsp");
rsp("report.Rnw.rsp");

RSP is a context-independent markup, i.e. it does not care what format
the underlying document has, as long as it is text based.

Hope this helps

/Henrik