用sweave显示错误

时间:2010-06-28 09:25:41

标签: r latex stderr sweave

我正在用Sweave写一些R音符,并希望显示常见错误。例如,

<<echo=TRUE, eval=TRUE>>=
x = 5
#Case matters!
x*X
@

然而,当发送时,由于R错误,文档将无法编译。有没有办法让sweave编译并显示(很好的格式化)错误?

3 个答案:

答案 0 :(得分:8)

如果我可以这样说,那么knitr即“下一代Sweave”就不会出现问题。它默认显示错误和警告,这在Sweave中很难或不可能,还有许多其他不错的功能(如语法着色,PGF集成和情节动画,适合初学者)。它也是积极开发和维护的。

Sweave代码必须使用同一个软件包提供的函数Sweave2knitr进行一次转换。

答案 1 :(得分:5)

正如Shane建议的那样,使用

<<echo=TRUE,eval=FALSE>> 

代码会出错,但你想显示,然后再用

<<echo=FALSE,eval=TRUE,results=verbatim>> 

但是在try中包含了相同的代码。

这里有一个例子: http://tolstoy.newcastle.edu.au/R/help/05/09/11690.html

答案 2 :(得分:2)

try()命令中包装您的错误。然后它会继续运行:

> {print(1); try(x*X); print(2)}
[1] 1
Error in try(x * X) : object 'X' not found
[1] 2