在R中加载程序包时会收到一些烦人的消息,这些消息直到并且除非我们不加载新程序包时才有用。由于这些消息看起来像输出,因此它们可能会造成混淆,尤其是在我们分析字符串数据时。因此,我们必须摆脱它们。
加载BSDA软件包时的消息示例:
> library(BSDA)
加载所需的包裹-晶格
附件包-'BSDA'
以下对象被'package:datasets'屏蔽-
Orange
在这里,在加载BSDA软件包时,我们会收到一些消息,但是如果确定该软件包已安装在R中并且正确加载,则可能对这些消息不感兴趣。另外,如果经常使用软件包,那么这些消息很烦人,我们希望摆脱它们。因此,有一个简单的解决方案,我们可以在加载程序包时使用preventPackageStartupMessages。
> suppressPackageStartupMessages(library(BSDA))
当我们使用preventPackageStartupMessages函数时,如果该软件包安装在R中,则它将禁用在加载软件包时获得的所有消息,但不会对错误或警告产生影响。
> suppressPackageStartupMessages(library(ROCR)) Error in library(ROCR) : there is no package called ‘ROCR’
由于我的R版本中未安装ROCR软件包,因此preventPackageStartupMessages函数会引发错误。
> suppressPackageStartupMessages(library(data.table)) Warning message: package ‘data.table’ was built under R version 3.6.2
现在,我确实安装了data.table软件包,但是它是在3.6.2版下构建的,因此它显示警告消息,因为用于此目的的RI版本是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))
但是,如果我们安装了新软件包,则我们不能忽略这些消息,因为当我们不熟悉该软件包时,可能会对我们有用。