web-dev-qa-db-ja.com

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_の設定にもかかわらず、getSymbols()およびdev.off()を実行すると、HTMLファイルに出力メッセージが表示されます。それぞれの出力は次のとおりです。

_[1] "RUT"
_

そして

_null device 
          1 
_

これらのメッセージを抑制するにはどうすればよいですか?

26
mchangun

invisibleを使用して、これらのタイプの出力を抑制してください。

```{r}
invisible(getSymbols("^RUT"))
chart.TimeSeries(RUT)
invisible(dev.off())
```

?invisibleのヘルプページから:

この関数は、割り当てることができるが、割り当てられていない場合は印刷しない値を返す関数が必要な場合に役立ちます。

これらはどちらも「メッセージ」または「警告」ではなく、実際の出力値です。 getSymbolsの-​​messagesは、実際には出力でknitrによって抑制されていることがわかります。

16

knitrを使用する場合、dev.off()を使用する必要はありません。すべてのデバイスを処理してプロットを作成します。

パッケージ作成者から Yihui

God kills a kitten whenever you dev.off()

_null device 
          1 
_

dev.off()の出力です。

getSymbolsが定義されていない場合、envが何かを返す可能性があります

結果(output)を非表示にする場合(一般的に)、オプションとして_results = 'hide'_を使用できます。 invisible()で何もラップする必要はありません

37
mnel

この問題にも遭遇しました。warning = FALSE, not warnings = FALSE

36
user190477