Ind*_*til 9 r package package-development
我有一个名为ggstatsplot( https://indrajeetpatil.github.io/ggstatsplot/ )的 R 包,它依赖于一组S3相互共享一些方法的包。因此,每次加载包时,用户都会收到有关此问题的消息,这对大多数用户没有用。
> library(ggstatsplot)
Registered S3 method overwritten by 'broom.mixed':
method from
tidy.gamlss broom
Registered S3 methods overwritten by 'car':
method from
influence.merMod lme4
cooks.distance.influence.merMod lme4
dfbeta.influence.merMod lme4
dfbetas.influence.merMod lme4
Run Code Online (Sandbox Code Playgroud)
有什么我可以在包内部实现的东西,以避免这些消息被打印到用户的控制台?也许有什么用.onAttach?
快速查看了 GitHub 上包的代码,在我看来,其中一些功能应该从 NAMESPACE 中删除。
@importFrom()然而,您使用的是简单地在描述中添加一个“导入:”声明,然后通过指定命名空间来调用函数,即package::function就足够了。这样它们就不会附加到命名空间并且不会相互冲突。
仔细看了一下,似乎问题出在您导出的包上,而不是您的库本身。因此,例如简单地调用library(broom.mixed)会产生冲突。由于您导出其某些导入(from broomExtra),因此出现相同的冲突。
似乎他们的 GitHub 上已经存在一个问题:HERE所以最好的情况是向他们发出拉取请求。或者,也许您一开始就真的不需要导出这些函数。