R从依赖项中抑制启动消息

R从依赖项中抑制启动消息,r,R,我的R包的一个依赖项在加载时显示启动消息。我想抑制这些启动消息 到目前为止,我找到的唯一修复方法是从我的描述文件的Depends:行中删除有问题的包。然后在我的包的.onLoad中调用suppresspackagestartupmessage(require(“officingpackage”) 我宁愿将有问题的包作为Dependes的一部分保留,但Dependes中指定的任何内容似乎都是自动加载的,因此无法禁止使用。如果启动消息实际上是用packagestartpmessage()编写的,则s

我的R包的一个依赖项在加载时显示启动消息。我想抑制这些启动消息

到目前为止,我找到的唯一修复方法是从我的描述文件的Depends:行中删除有问题的包。然后在我的包的
.onLoad
中调用
suppresspackagestartupmessage(require(“officingpackage”)


我宁愿将有问题的包作为Dependes的一部分保留,但Dependes中指定的任何内容似乎都是自动加载的,因此无法禁止使用。

如果启动消息实际上是用
packagestartpmessage()编写的,则
suppressPackagestartpmessages()函数将起作用
--请参阅帮助页

许多包只使用<代码>()/<代码>,哪一个可以考虑一个小块。那么

 suppressMessages(library(foo))

工作得更好。

如果使用名称空间,可以在
导入
中指定包,并使用
导入
导入
加载必要的函数。这样,软件包就不会附加,但您的软件包可以加载和使用必要的功能。如果不附加,则不会给出启动消息,因此这种方法确保您不会看到导入中指定的包的任何启动消息

确保您检查了导入的所有重要内容。如果您导入的包依赖于其他包,我不确定是否导入了使用这些函数所需的所有内容。您可能需要做一些令人费解的事情才能加载所需的所有内容。另一方面,使用
Imports
可确保正确执行任何依赖项检查


另一个选项是不在
Depends
中指定包,而是在描述文件的
建议中指定包,并使用@Dirk给您的选项。如果在
install.packages()
中设置了“dependencies=TRUE”,这将提供正确的相关性检查。但我个人认为使用名称空间要干净得多。

在脚本或环境中内联执行此操作的快速方法是重写
library()/require()
以包装
SuppressPackageStatupMessages()
方法:

> library(here) # This shows a message
here() starts at /home/z/development/
解决办法:

> flibrary <- library
> library <- function(...) suppressPackageStartupMessages(flibrary(...))
> library(here) # No messages
> 
>flibrary library(此处)#无消息
> 
>frequeire require(此处)#无消息
> 

有问题的软件包确实使用了packageStatupMessage。我只是在寻找一个不需要我将有问题的包从依赖项中删除的修复程序,因为它在调用R CMD check时会导致警告。@Nick使用导入和名称空间不会导致警告,并允许您将有问题的包从依赖项中删除。我需要更强大的>suppressMessages(库(lasso2))R包,用于解决回归问题,同时对参数施加L1约束。基于S-plus发行版2.1版权(C)1998年、1999年贾斯汀·洛霍斯特·伯温A.图拉克·比尔·维纳布尔斯版权(C)2002年马丁·梅奇勒·威尔。。。在这种情况下,为了本地使用,我过去只是下载代码并注释掉消息。但是,对于从CRAN安装的客户站点,这对您没有帮助。
> flibrary <- library
> library <- function(...) suppressPackageStartupMessages(flibrary(...))
> library(here) # No messages
> 
> frequire <- require
> require <- function(...) suppressPackageStartupMessages(frequire(...))
> require(here) # No messages
>