Как не выполнить определенные фрагменты Rmarkdown на основе параметра? - PullRequest
0 голосов
/ 15 июня 2019

Это относится к существующей записи . Поскольку я новичок и не могу добавлять комментарии, я задаю вопрос и надеюсь, что кто-то может связать это с соответствующим постом.

Я не хочу выполнять определенные чанки на основе параметра limit (ИСТИНА или ЛОЖЬ). Решения @ eipi10 и @ xitrium работают не для создания выходных данных для закомментированных чанков, но рендер фактически все еще выполняет закомментированные чанки, что в моем случае приведет к ошибке (поскольку только подмножество данных используется на основе другого параметра и некоторый анализ столкнется с проблемой пропущенных данных) и остановит прогон. Вместо использования множества tryCatch, я хочу указать целый блок фрагментов, которые не будут выполнены. Как этого добиться?

1 Ответ

0 голосов
/ 15 июня 2019

Один из параметров knitr чанков - это eval=, который определяет, будет ли оцениваться чанк. С этой страницы:

  • eval: (TRUE; логично) оценивать ли фрагмент кода; это также может быть числовой вектор для выбора того, какое выражение (я) R нужно оценить, например, eval=c(1, 3, 4) или eval=-(4:5).

Одним из преимуществ этого является то, что он может использовать R-переменные в режиме реального времени, либо сгенерированные в предыдущем фрагменте (eval=limit), либо переданные в параметризованный документ R-markdown (как eval=params$limit). ).

В зависимости от ваших глобальных параметров, вам всегда может потребоваться / нужно отменить печать чанка, вы также можете добавить echo=params$limit.

...