【问题标题】:R package: how to make my package loading other package when I library my packageR包:当我库我的包时如何让我的包加载其他包
【发布时间】:2020-11-14 01:38:23
【问题描述】:

我已经制作了自己的名为“test”的包并安装了它。但是,也存在一些问题。

例如,在我的 .R 文件中,我使用来自名为“matrixStats”的其他包中的函数“rowQuantiles”。

我已经添加了

import(matrixStats)

到命名空间文件

并添加

Imports:matrixStats (>= 0.57.0)

到描述文件。

但是,每当我图书馆自己的包装盒

library(test)

总是出现以下错误

could not find function "rowQuantiles"

我怎样才能做到这一点,每当我库我自己的包时,它就会加载其他需要的包。就像下面这样

> library(ggpubr)
Loading required package: ggplot2

【问题讨论】:

  • 尝试通过使用此语法package::method() 从另一个包中获取函数以将方法调用到您的包中,它还应该使用它加载该方法所需的所有依赖项。
  • @sconfluentus 嗨,谢谢,我应该放哪个文件“package::method()”
  • 对不起,我可能没有说清楚。您可以将单词 package 替换为您将使用函数/方法的包的名称,然后将 method() 替换为实际函数,例如:dplyr::select( ) 这有意义吗?

标签: r r-package roxygen2


【解决方案1】:

理解这一点的关键是了解加载包和附加包之间的区别。

Imports: 下列出的包仅在附加包时加载,即当您执行library(mypkg) 时。相比之下,Depends: 下列出的包被加载附加。所以,如果你使用:

Depends: matrixStats

那么,当您附加软件包时,所有 ma​​trixStats 函数都将位于 search() 路径上。

【讨论】:

    猜你喜欢
    • 2010-10-15
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2017-02-26
    • 2016-07-24
    • 2020-08-14
    相关资源
    最近更新 更多