我在R (ROCR)中有一个需要在R环境中加载的包。加载包时,将打印一组消息。这通常很好,但是由于我的R脚本的输出将用于进一步的分析,所以我希望完全禁用所有这些输出。我该怎么做?此外,我更喜欢在不修改ROCR的情况下这样做,这样这个脚本的未来用户也就不需要这么做了。
到目前为止:
sink()
在这里不起作用-将标准输出和标准错误都重定向到/dev/null
不起作用,因为me.options(warnings=-1)
也不起作用,因为这些本身并不是正在打印的警告。有什么想法吗?
发布于 2011-12-31 00:48:51
只需在library()
调用中使用suppressMessages()
:
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>
发布于 2018-07-16 15:32:42
Dirk's answer禁止所有消息,并且不特定于加载包时生成的消息。
对所问问题的更准确的解决方案是:
suppressPackageStartupMessages(library(THE_PACKAGE_NAME))
更详细的解释可以在here中找到
发布于 2019-11-14 03:09:24
使用suppressPackageStartupMessages
,请参阅MehradMahmoudian提供的答案。为完整起见,请在此处添加使用示例:
对于一个库,使用suppressPackageStartupMessages(...)
,例如:
suppressPackageStartupMessages(library(ggplot2))
对于多个库,请使用suppressPackageStartupMessages({...})
,例如:
suppressPackageStartupMessages({
library(ggplot2)
library(ggdendro)
})
另请参阅:
https://stackoverflow.com/questions/8681688
复制相似问题