[R] cacheSweave fails when used in conjunction with rjags

Roger Levy rlevy at ling.ucsd.edu
Fri Mar 26 06:57:14 CET 2010


Hi all,

I use the excellent packages rjags and cacheSweave, and unfortunately  
seem to have found an incompatibility between them.  Below are a  
minimal .Rnw file and corresponding JAGS model file which illustrate  
the problem:

*** JAGS model file; name=j.bug ***
model {
   mu ~ dnorm(0,1.0E-5)
   sigma ~ dunif(0,100)
   for(i in 1:length(y)) {
     y[i] ~ dnorm(mu,sigma)
   }
}
***

*** .Rnw file; name=testCacheSweave-jags.Rnw ***
\documentclass[12pt]{article}
\usepackage{Sweave}

\begin{document}

<<loadLib>>=
library(rjags)
@

<<testJags,cache=T>>=
y <- rnorm(100)
m <- jags.model("j.bug")
update(m,100)
res <- coda.samples(m,c("mu","sigma"),n.iter=1000)
@

<<plotResults,fig=T>>=
plot(res)
@
\end{document}
***


When I run Sweave with cacheSweaveDriver, I get the following error  
(note that this happens on the first invocation, not just on repeat  
invocations):

 > Sweave("testCacheSweave-jags.Rnw",driver=cacheSweaveDriver)
Writing to file testCacheSweave-jags.tex
Processing code chunks ...
  1 : echo term verbatim (label=loadLib)
  2 : echo term verbatim (label=testJags)

Error:  chunk 2 (label=testJags)
Error in jags.model("j.bug") : RUNTIME ERROR:
Unable to evaluate upper index of counter i


Reading through the cacheSweave documentation, it remains unclear to  
me why this error would occur.  Would anyone be able to clarify, and/ 
or suggest a possible workaround?  It's an unfortunate conflict  
because running JAGS models is one of the most computation-intensive  
operations that I have in my .Rnw document.

Best & many thanks in advance.

Roger


--

Roger Levy                      Email: rlevy at ling.ucsd.edu
Assistant Professor             Phone: 858-534-7219
Department of Linguistics       Fax:   858-534-4789
UC San Diego                    Web:   http://ling.ucsd.edu/~rlevy



More information about the R-help mailing list