Включить ошибки в виньетку пакета R markdown

Я разрабатываю пакет R и имею пользовательскую функцию, которая содержит условное выражение if(condition) stop("Error message"). Я вызываю эту функцию в виньетке пакета, чтобы сгенерировать сообщение об ошибке и включить его в виньетку. Однако это приводит к сбою построения виньетки.

Как я могу заставить создание виньетки продолжаться, даже если код генерирует сообщения об ошибках, и сохранить эти сообщения об ошибках в документе виньетки?


person Community    schedule 28.08.2016    source источник


Ответы (1)


В документации по параметрам блоков knitr говорится:

error: (ИСТИНА; логично) сохранять ли ошибки (из stop()); по умолчанию оценка не останавливается даже в случае ошибок!! если мы хотим, чтобы R останавливался на ошибках, нам нужно установить для этой опции значение FALSE.

Функция render() rmarkdown сбрасывает это значение по умолчанию на FALSE (в отличие от самого knitr), что, возможно, является лучшим значением по умолчанию. Вы можете переопределить это и установить обратно на TRUE (я думаю) либо

  • установка error=TRUE в опциях конкретного чанка, или
  • используя knitr::opts_chunk$set(error=TRUE) в раннем фрагменте кода, чтобы установить параметр глобально.

Я бы предложил первое (т.е. разрешать ошибки только там, где вы их ожидаете...)

person Ben Bolker    schedule 28.08.2016