R環境にロードする必要のあるR(ROCR)のパッケージがあります。パッケージをロードすると、一連のメッセージが出力されます。これは通常は問題ありませんが、Rスクリプトの出力はさらに分析するために使用されているため、この出力をすべて完全に無効にします。それ、どうやったら出来るの?さらに、ROCRをまったく変更せずに実行したいので、このスクリプトの将来のユーザーも変更する必要がありません。
これまでのところ:
sink()
はここでは機能しません-stdoutとstd errの両方を_/dev/null
_にリダイレクトしても何も起こりません。options(warnings=-1)
は何もしません。これらは警告そのものではないため、印刷されます。何かご意見は?
suppressMessages()
呼び出しの周りでlibrary()
を使用するだけです:
edd@max:~$ R
R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)
[...]
R> suppressMessages(library(ROCR))
R> # silently loaded
R> search()
[1] ".GlobalEnv" "package:ROCR" # it's really there
[3] "package:gplots" "package:KernSmooth"
[5] "package:grid" "package:caTools"
[7] "package:bitops" "package:gdata"
[9] "package:gtools" "package:stats"
[11] "package:graphics" "package:grDevices"
[13] "package:utils" "package:datasets"
[15] "package:methods" "Autoloads"
[17] "package:base"
R>
Dirk's answer はすべてのメッセージを抑制し、パッケージのロード中に生成されるメッセージに固有ではありません。
質問に対するより正確な解決策は次のとおりです。
suppressPackageStartupMessages(library(THE_PACKAGE_NAME))
もう少し詳細な説明があります こちら
library(ROCR, quietly = TRUE)
はよりエレガントなオプションかもしれません。
以下に示すようにquietly = T
を追加すると、問題が解決します。
suppressWarnings(suppressMessages(library("dplyr", quietly = T)))
複数のパッケージの場合、次を使用できます。
## specify the package names
PKGs <- c("affy","gcrma","readxl","ggplot2","lattice" )
そして、以下のようにlapplyを使用します。
lapply(PKGs, library, character.only = TRUE ,quietly = T)