Я пишу некоторые записки R с Sweave и хотел бы показать распространенные ошибки. Например,
<<echo=TRUE, eval=TRUE>>=
x = 5
#Case matters!
x*X
@
Однако, когда sweaving, документ не скомпилирует из-за ошибки R. Там какой-либо путь состоит в том, чтобы заставить sweave скомпилировать и показать (приятно форматированный) ошибка?
Как предлагает Шейн, используйте
<<echo=TRUE,eval=FALSE>>
для кода, который приведет к ошибке, но вы хотите отобразить, а затем снова с
<<echo=FALSE,eval=TRUE,results=verbatim>>
, но с тем же кодом, заключенным в попытку.
Вот пример: http://tolstoy.newcastle.edu.au/R/help/05/09/11690.html
Заверните вашу ошибку в команду try()
. Тогда она продолжит выполняться:
> {print(1); try(x*X); print(2)}
[1] 1
Error in try(x * X) : object 'X' not found
[1] 2