Подавление сообщений в Knitr/Rmarkdown
Вот код для моего файла RMarkdown:
```{r echo=FALSE, message=FALSE}
opts_chunk$set(comment = NA, echo=FALSE, message = FALSE, warnings = FALSE)
options("getSymbols.warning4.0"=FALSE)
Sys.setenv(TZ = "GMT")
library(quantmod)
library(xtable)
library(PerformanceAnalytics)
```
```{r}
getSymbols("^RUT")
chart.TimeSeries(RUT)
dev.off()
```
Несмотря на настройки message = FALSE, warnings = FALSE
, я все еще получаю выходные сообщения в файле HTML при запуске getSymbols()
и dev.off()
. Их соответствующие выходы:
[1] "RUT"
и
null device
1
Как я могу подавить эти сообщения?
Ответы
Ответ 1
Попробуйте использовать invisible
для подавления этих типов вывода.
```{r}
invisible(getSymbols("^RUT"))
chart.TimeSeries(RUT)
invisible(dev.off())
```
На странице справки для ?invisible
:
Эта функция может быть полезна, когда требуется, чтобы функции возвращали значения, которые могут быть назначены, но которые не печатаются, когда они не назначены.
Ни один из них не является "сообщениями" или "предупреждениями", а действительными значениями вывода. Вы увидите, что сообщения для getSymbols
, действительно, подавлены knitr на выходе.
Ответ 2
При использовании knitr
вам не следует использовать dev.off()
. Он заботится обо всех устройствах для создания графиков.
От автора пакета Yihui
![God kills a kitten whenever you dev.off()]()
null device
1
Выводится dev.off()
.
Возможно, что getSymbols
возвращает то, что вы не определили env
Если вы хотите скрыть результаты (output
) (в общем), вы можете использовать results = 'hide'
в качестве опции. Нет необходимости обертывать что-либо в invisible()
Ответ 3
В эту проблему также входит, я хотел бы добавить, что это должно быть warning = FALSE,
not warnings = FALSE