[R] cacheSweave fails when used in conjunction with rjags

Martyn Plummer plummer at iarc.fr
Mon Mar 29 10:32:37 CEST 2010


Hi Roger,

If you do not supply an explicit data list, the jags.model() function
will try to get the data from the calling environment.  This is
obviously not working with cacheSweave, but if you do supply an explicit
list, like this:

m <- jags.model("j.bug", data=list("y"=y))

it will work.

Martyn


On Thu, 2010-03-25 at 22:57 -0700, Roger Levy wrote:
> 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
> 
> 
> 
> 
> 
> 
> 


-----------------------------------------------------------------------
This message and its attachments are strictly confidenti...{{dropped:8}}



More information about the R-help mailing list