2010-10-21 31 views
6

Tôi nhận được đầu ra không liên quan trong tệp .tex của tôi mà tôi không thể chặn bằng <> hoặc chìm(). Đáng chú ý, các dòng không mong muốn không được bao quanh bởi .. {Schunk} hoặc tương tự.làm thế nào tôi có thể ngăn chặn đầu ra từ Sweave không bị chặn bởi echo = FALSE?

Điều này xảy ra đối với tôi khi tôi sử dụng hoặc DEoptim hoặc rjags, mặc dù điều này có khả năng không giới hạn ở các chức năng này.

dụ tập tin .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} 

Những gì tôi muốn xảy ra Kết quả mà tôi muốn là file tex đó sẽ được sản xuất nếu đầu ra được đàn áp, hoặc tương đương, nếu các đoạn mã đã được lấy ra từ các tập tin .Rnw:

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

\end{document} 

Điều gì xảy ra Tuy nhiên, kết quả là file .tex có đầu ra từ các chức năng:

\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} 

Lưu ý rằng đầu ra không được bao bọc bởi \ begin {SCHUNK} \ end {SCHUNK}, do đó $ dấu hiệu nhầm lẫn LaTeX và nó đã giành' t biên dịch.

Trả lời

6

Đầu ra đến từ cuộc gọi đến hàm được biên dịch (C hoặc Fortran) trong DEoptim.

này tạo ra sản lượng sạch:

\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} 
+0

Xin chào Henrik, tôi đã xóa kết quả = tex khỏi đoạn mã. Tôi sử dụng nó trong tài liệu thực tế để sử dụng với xtable(), nhưng đã loại bỏ bảng khỏi ví dụ. Kết quả là giống nhau có hoặc không có nó. –

+0

Tôi đã thêm một ví dụ về những gì tôi muốn xem - tất cả các đầu ra từ chạy mã bị chặn. Trong trường hợp rjags đầu ra là năm trang báo cáo tiến độ. –

7

Bạn đã thử

<<echo=FALSE, results=hide>> 

?

+0

Điều đó đã làm được! Cảm ơn. –

Các vấn đề liên quan