On 1/5/2009 2:52 PM, Sebastian P. Luque wrote:
Hi,

With the following Sweave minimal file:


---<--------------------cut here---------------start------------------->---
\documentclass{article}

\usepackage{Sweave}

\begin{document}

<<binom-sim>>=
thetas <- seq(0, 1, by=0.001)
prior <- rep(1, length(thetas)) / length(thetas)
lik <- dbinom(1, 1, thetas)
lik.p <- prior * lik
post <- lik.p / sum(lik.p)

You missed an @ after this chunk. If this is true in the original, I'm surprised Sweave didn't report an error, but it probably ate up the second chunk as part of the first.


<<binom-sim-fig, fig=TRUE, include=FALSE, height=3, echo=FALSE>>=
layout(matrix(1:2, ncol=2)); par(mar=c(5, 4, 2, 1), cex=0.75)
matplot(thetas, cbind(prior, lik, post), type="l", lty=c(2, 1, 1),
        xlab="theta", ylab="probability density")
lik <- dbinom(60, 100, thetas)

It's a bad idea to generate random values in a fig=TRUE chunk, because the code gets evaluated multiple times, but I don't think this would cause your error.

Duncan Murdoch

lik.p <- prior * lik
post <- lik.p / sum(lik.p)

matplot(thetas, cbind(prior, lik, post), type="l", lty=c(2, 1, 1),
        xlab="theta", ylab="probability density")
@

\includegraphics[width=\linewidth]{test-binom-sim-fig}


\end{document}
---<--------------------cut here---------------end--------------------->---

If the embedded chunks are evaluated directly in an R session, two
different panel data are produced by layout(), as expected.  However,
when weaving and latexing the file produces, then the two panels show
the same data, corresponding to the last data set.  This doesn't happen
if the data are much simpler, say using matplot() with simple sequences
of numbers.  Any ideas what is causing this and how to get around it?



Cheers,


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to