我正在用Sweave写一些R音符,并希望显示常见错误。例如,
<<echo=TRUE, eval=TRUE>>=
x = 5
#Case matters!
x*X
@
然而,当发送时,由于R错误,文档将无法编译。有没有办法让sweave编译并显示(很好的格式化)错误?
答案 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