emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Possible bug (?): :noweb doesn't respect indentations (at least


From: Berry, Charles
Subject: Re: [O] Possible bug (?): :noweb doesn't respect indentations (at least i R/BUGS/JAGS).
Date: Tue, 9 Apr 2019 16:19:53 +0000


> On Apr 8, 2019, at 4:01 PM, Emmanuel Charpentier <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]