我正在写一个R包,我想从 Forecast 包中导入泛型函数forecast。我的程序包提供了forecast.myobj方法。我在forecast包文件中的Imports:中有DESCRIPTION,我的函数定义如下:

##' @export
forecast.myobj <- function(x) {

}

我正在使用 devtools 软件包(1.5版)来构建该软件包。生成的NAMESPACE具有以下内容
S3method(forecast, myobj)
importFrom(forecast, forecast)

但是,当我在干净的R session 中加载程序包时,forecast函数不可用。有趣的是,虽然我可以看到forecastforecast.myobj的帮助页面,但我可以通过forecast::forecastmypackage:::forecast.myobj访问这些功能。是否有可能以某种方式使forecast对用户可用,而不依赖于forecast软件包?我在这里检查了文档并审查了许多类似的问题,但没有找到明确的否定或肯定的答案。

最佳答案

必须将导入的函数导出到NAMESPACE文件中,以供用户使用:

S3method(forecat, myobj)
importFrom(forecast, forecast)
export(forecast)

例如,请参阅dplyr包的NAMESPACE file,该包从magrittr包中导入%>%并导出,以便用户可以访问。

10-08 12:43