如何在R中加载包时停止打印消息?


在R中加载包时,我们会收到一些烦人的消息,除非我们正在加载一个新的包,否则这些消息并没有用处。由于这些消息看起来像是输出,因此可能会造成混淆,尤其是在我们分析字符串数据时。因此,我们必须去除它们。

加载 BSDA 包时消息的示例:

> library(BSDA)

加载所需包 - lattic

附加包 - ‘BSDA’

以下对象被屏蔽来自 ‘package:datasets’ -

Orange

在加载 BSDA 包时,我们收到了一些消息,但如果我们确定该包已安装在R中并且我们正在正确加载它,那么我们可能对这些消息不感兴趣。此外,如果一个包经常使用,那么这些消息会很烦人,我们希望去除它们。所以,有一个简单的解决方案,我们可以在加载包时使用 suppressPackageStartupMessages。

示例

> suppressPackageStartupMessages(library(BSDA))

当我们使用 suppressPackageStartupMessages 函数时,它会禁用加载包时收到的所有消息(如果该包已安装在R中),但它不会对错误或警告产生影响。

示例

> suppressPackageStartupMessages(library(ROCR))
Error in library(ROCR) : there is no package called ‘ROCR’

由于我的R版本中没有安装 ROCR 包,因此 suppressPackageStartupMessages 函数会抛出一个错误。

> suppressPackageStartupMessages(library(data.table))
Warning message:
package ‘data.table’ was built under R version 3.6.2

现在,我确实安装了 data.table 包,但它是在 3.6.2 版本下构建的,因此它显示了一个警告消息,因为我用于此的R版本是 3.6.1。

让我们再看一个例子。假设我们想要加载 gdata 包,它会附带许多消息,如下所示:

> library(gdata)
gdata: Unable to locate valid perl interpreter
gdata:
gdata: read.xls() will be unable to read Excel XLS and XLSX files
gdata: unless the 'perl=' argument is used to specify the location of a
gdata: valid perl intrpreter.
gdata:
gdata: (To avoid display of this message in the future, please ensure
gdata: perl is installed and available on the executable search path.)
gdata: Unable to load perl libaries needed by read.xls()
gdata: to support 'XLX' (Excel 97-2004) files.
gdata: Unable to load perl libaries needed by read.xls()
gdata: to support 'XLSX' (Excel 2007+) files.
gdata: Run the function 'installXLSXsupport()'
gdata: to automatically download and install the perl
gdata: libaries needed to support Excel XLS and XLSX formats.
Attaching package: ‘gdata’

以下对象被屏蔽来自 ‘package:purrr’ -

keep

以下对象被屏蔽来自 ‘package:data.table’ -

first, last

以下对象被屏蔽来自 ‘package:stats’ -

nobs

以下对象被屏蔽来自 ‘package:utils’ -

object.size

以下对象被屏蔽来自 ‘package:base’ -

startsWith

现在我们可以很容易地忽略这些消息,如下所示:

> suppressPackageStartupMessages(library(gdata))

但是,如果我们安装了一个新包,那么我们一定不能忽略这些消息,因为它们可能对我们有用,因为我们对该包还很陌生。

更新于: 2020年8月10日

194 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.