禁止mFilter onLoad消息

时间:2017-02-14 18:35:24

标签: r

我正在创建一个R包,它在加载时无法显示导入包中的任何消息。我遇到了特定包mFilter的问题。如果我导入它,我总是得到

‘mFilter’ version: 0.1-3

 ‘mFilter’ is a package for time
 series filtering

 See ‘library(help="mFilter")’ for
 details

 Author: Mehmet Balcilar,
 mbalcilar@yahoo.com

当用户加载我的包时,无论在.onLoad文件中添加suppressMessages('mFilter')。

我真的需要使用mFilter。因此从Imports列表中删除它无济于事。有谁知道我该怎么办?

2 个答案:

答案 0 :(得分:0)

我认为你不能。在mFilter包中,作者错误地使用了

,而不是在message()中使用.onLoad()
if(interactive() || getOption("verbose"))
    writeLines(strwrap(txt, indent = 4, exdent = 4))

如果您以交互方式使用软件包,这将始终执行并且不会被禁止。

答案 1 :(得分:0)

如果您可以将mFilter的使用限制为几个功能,则可以建议 mFilter而不是导入或依赖它。然后,在需要它的函数中,您可以capture.output(require(mFilter, quietly = TRUE))加载包(如果加载不成功,可以stop添加mFilter需要安装的消息。

或者,您可以采用相同的方法,但在您的包mFilter中加载.onLoad

mFilter Imports中列出DESCRIPTION(以确保其已安装)但{em>未导入{{1>}时,您甚至可以做一些棘手的事情1}}文件。它可能(至少)在检查期间发出警告,但它可能会正常工作。