Thanks ! Ths switch excaped my attention, probably because it is buried in a "literal example" section, which I didn't connect to noweb care and feeding...
Maybe the "noweb" section might benefit of a discrete recall of relevant switches ? Thanks again ! -- Emmanuel Charpentier Le mardi 09 avril 2019 à 16:19 +0000, Berry, Charles a écrit : > > On Apr 8, 2019, at 4:01 PM, Emmanuel Charpentier < > > emm.charpent...@free.fr> wrote: > > > > Compare this org source: > > > > =================================================================== > > # A small :noweb mystery: indentation > > > > #+property: header-args:R :session > > #+options: toc:nil > > #+author: > > #+date: > > > > The structure of a probablity proble can be represented by a ~JAGS~ > > code snippet: > > #+name: Struct > > #+begin_src R :eval never :exports code > > for (i in 1:nObs) { > > for (j in 1:nZ) { > > Z[i,j] ~ dbern(P[i,j]) > > logit(P[i,j]) <- alpha + beta[j]*X[i] > > } > > } > > #+end_src > > > > The same code snippet can be used for simulation: > > > > See Org Manual (org) Literal Examples for information about the -i > switch > > Try: > > #+begin_src R -i :exports code :results none :noweb yes > > instead of this: > > > #+begin_src R :exports code :results none :noweb yes > > library(rjags) > > library(coda) > > ## Reproducibility ? > > set.seed(813) > > Params <- local({ > > nObs <- 500 > > nZ <- 5 > > X <- rnorm(nObs) > > alpha <- rnorm(1,0,3) > > beta <- rnorm(nZ,-1,2) > > list( > > nObs=nObs, > > nZ=nZ, > > X=X, > > alpha=alpha, > > beta=beta) > > }) > > ## Wrap model code > > M <- > > "model { > > <<Struct>> > > }" > > ## Compilation > > JM <- jags.model(textConnection(M), data=Params, n.adapt=1, > > n.chains=1) > > ## Forward sampling > > JS <- coda.samples(JM, "Z", n.iter=1) > > #+end_src > > > > and for inference, after adding priors of parameters: > > > > #+name: Priors > > #+begin_src R :eval never :exports code > > ## Priors > > alpha ~ dt(0, 1e-2, 3) > > for (j in 1:nZ) { > > beta[j] ~ dt(0,1e-2, 3) > > } > > #+end_src > > > > And again here: > > > > #+name: Inference > > #+begin_src R :noweb yes :exports code > > Data <- list( > > nObs=Params$nObs, > > nZ=Params$nZ, > > X=Params$X, > > Z=matrix(as.matrix(JS), ncol=Params$nZ, byrow=FALSE)) > > ## Wrap inference model > > MI <- > > "model { > > <<Struct>> > > <<Priors>> > > }" > > ## Compilation > > JMI <- jags.model(textConnection(MI), Data, n.chains=4) > > ## Inference sampling > > JMS <- coda.samples(JMI, c("alpha", "beta"), n.iter=1000) > > #+end_src > > > > #+RESULTS: Inference > > =================================================================== > > > > With the result of its export to Ascii: > > > > [snip] > > > > The indentation is not respected in the included JAGS snippets. > > Further > > attempts with exporting to PDF (both the built-in exporter and ox- > > pandoc) and DOCX (ox-pandoc) show that the problem remains the > > same, > > but, IIRC, with slight variations in whitespace. > > > > That's not serious (just ugly) for R/JAGS ; but it might be serious > > for > > Python/Sage, where whitespace is syntaxic. > > > > Thoughts ? > > > > Try the switch. > > HTH, > > Chuck