R 防止在包端加载消息
我已经将我经常使用的一些功能与roxygen2放在一个软件包中,一切都很顺利。唯一困扰我的是,在加载包时,我会从所有加载的依赖项中得到一堆文本,并打印到控制台中。我知道当我使用R 防止在包端加载消息,r,package,suppress-warnings,roxygen2,R,Package,Suppress Warnings,Roxygen2,我已经将我经常使用的一些功能与roxygen2放在一个软件包中,一切都很顺利。唯一困扰我的是,在加载包时,我会从所有加载的依赖项中得到一堆文本,并打印到控制台中。我知道当我使用suppressWarnings(suppressMessages(library(“PACKAGE”)))时可以禁用警告,但我想知道是否也可以直接在包中设置此选项(可能在命名空间中)?这样做的目的是抑制来自依赖项的警告,并且我可以指定在加载包时显示的我自己的文本 我尝试了@NelsonGon的建议,并将其添加到名为zzz
suppressWarnings(suppressMessages(library(“PACKAGE”)))
时可以禁用警告,但我想知道是否也可以直接在包中设置此选项(可能在命名空间中)?这样做的目的是抑制来自依赖项的警告,并且我可以指定在加载包时显示的我自己的文本
我尝试了@NelsonGon的建议,并将其添加到名为zzz.R
的文件中。额外的欢迎文本按原样打印,但来自从属关系的加载消息仍然打印
# Welcome message
.onLoad <- function(...){
invisible(suppressPackageStartupMessages(
sapply(c("stringi", "stringr",
"qdapRegex", "readr",
"tokenizers", "rvest",
"pryr", "XML", "xml2",
"lubridate", "data.table",
"ggplot2", "anytime", "dplyr",
"network", "quanteda", "ggmap",
"networkDynamic", "mgsub",
"dplyr", "ggplot2", "network",
"stats", "ndtv", "devtools",
"ggtext"),
requireNamespace, quietly = TRUE)))
pkg_info <- "Welcome to my package"
packageStartupMessage(pkg_info)
}
欢迎留言
.onLoad在引擎盖下,包裹装载呼叫:
pkgload::load_取决于调用的
require
有一个默认值=FALSE
选项
您只需将此选项设置为TRUE
即可避免消息:
# Welcome message
.onLoad <- function(...){
quietly <- getOption('quietly')
options(quietly = T)
pkg_info <- "Welcome to my package"
packageStartupMessage(pkg_info)
options(quietly = quietly)
}
@NelsonGon这就是我想要做的,但我使用roxygen2来构建包,所以我不确定我必须将建议的更改放在哪里,我从未明确使用devtools::load_all
或onLoad
。你知道当使用roxygen2构建包时,我可以在哪里编辑这些吗?将.onLoad
放在zzz.R
中。你可以在我的电脑上看到一个例子load_all
(只需要在构建时测试更改)与此无关。只需将suppress-packagestartpmessages
复制到。onLoad
到zzz.R
。我可以确认它不起作用。您是否在使用描述文件的依赖项
字段?通常使用Imports
字段,并且没有启动消息。这可能是本地使用的包?如果我是最终用户,我肯定想知道26个相当大的软件包正在加载并添加到我的搜索路径中。即使是本地使用,我也会按照@StéphaneLaurent的建议,将包放入Imports
中,而不是dependens
,使用名称空间限定符引用代码中导入的函数。我尝试了这一点,但在加载包时,控制台仍会打印相同的消息。您收到的消息完全相同吗,或者其中一些消失了?我用数据尝试了这个。表和输出是干净的。我的坏,我忘了保存函数!只是尝试了一次,我得到的信息明显减少!我仍然得到的唯一的警告是,有两个S3方法被覆盖。这似乎是你的代码和斯蒂芬·洛朗的建议的结合,成功了!
> devtools::load_all(".")
Loading myPackage
Welcome to my package