Как я могу подавить вывод из Sweave, который не подавляется echo = FALSE? - PullRequest
8 голосов
/ 21 октября 2010

Я получаю посторонний вывод в мой файл .tex, который не могу подавить с помощью <> или sink (). Примечательно, что нежелательные строки не заключены в .. {Schunk} или подобное.

Это происходит для меня, когда я использую либо DEoptim, либо rjags, хотя это, вероятно, не ограничивается этими функциями.

пример .Rnw файл:

\documentclass[a4paper, 12]{article}
begin{document}

<<echo=FALSE>>=
require(DEoptim) 
Rosenbrock <- function(x){ #example from DEoptim authors 
  x1 <- x[1]
  x2 <- x[2]
  100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
lower <- c(-10,-10)
upper <- -lower
set.seed(1234)
DEoptim(Rosenbrock, lower, upper)

@

\end{document}

Что я хочу, чтобы произошло Результат, который я хотел бы получить, - это tex-файл, который будет создан, если вывод был подавлен, или эквивалентно, если фрагмент кода был удален из файла .Rnw:

\documentclass[a4paper, 12]{article}
\usepackage{Sweave}
\begin{document}

\end{document}

Что происходит Тем не менее, полученный .tex файл имеет вывод из функции:

\documentclass[a4paper, 12]{article}
\usepackage{Sweave}
\begin{document}

Iteration: 1 bestvalit: 132.371451 bestmemit:   -1.851683    4.543355
Iteration: 2 bestvalit: 8.620563 bestmemit:   -1.854371    3.369908
....few hundred lines of DEoptim output ....
$member$storepop
list()


attr(,"class")
[1] "DEoptim"
\end{document}

Обратите внимание, что вывод не заключен в \ begin {Schunk} \ end {Schunk}, поэтому знаки $ запутывают LaTeX и не компилируются.

Ответы [ 2 ]

8 голосов
/ 22 октября 2010

Вы пробовали

<<echo=FALSE, results=hide>>

?

7 голосов
/ 22 октября 2010

Вывод происходит из вызова скомпилированной функции (C или Fortran) в DEoptim.

Это дает чистый вывод:

\documentclass[a4paper, 12]{article}  
\begin{document}

\section{Computation in R}

<<computation,results=hide>>=  
require(DEoptim)  
Rosenbrock <- function(x){  
    x1 <- x[1]  
    x2 <- x[2]  
    100 * (x2 - x1 * x1)^2 + (1 - x1)^2  
}  
lower &lt;- c(-10,-10)  
upper &lt;- -lower  
set.seed(1234)  
res &lt;- DEoptim(Rosenbrock, lower, upper)  

@  
\section{Results}  

<<results>>=  
res$optim  


@  
\end{document}  
...