如何在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.