总结一下,原来的(下)现在已经过时了,并且在某些地方有错误或误导性。
最近的问题是 pls 包中没有名为 predict 的函数; predict 有一些未导出的 S3 方法,但没有这样的 predict。所以你不能导入这个。 predict 泛型位于 stats 包中,您需要从那里导入,如下所述。
您的包需要在DESCRIPTION 中包含Depends: pls,以便R 可以使用正确的predict 方法。pls 中没有可以专门导入的内容。 p>
您还需要从 stats 命名空间导入 predict 泛型,所以添加
#' @importFrom stats predict
因为这将在你的包命名空间中导入泛型。您还需要将Imports: stats 添加到您的DESCRIPTION 文件中,以表明您需要stats 包;以前,我们不必声明对 R 附带的一组基础包(即 R 附带的非推荐包)的依赖关系。
原创
这里的主要问题是 pls 没有定义函数/方法predict。它为predict 泛型提供了几种方法,但不提供泛型本身。
如果需要,您需要从 stats 包中导入泛型 - 我不确定您是否这样做,因为您没有创建需要或构建在泛型之上的函数。至少你需要
#' @importFrom stats predict
尽管您可能需要/想要导入整个 stats 命名空间 - 取决于您的包在您当前正在处理的功能之外做什么。
另一个问题是predict.mvr 不是从 pls 命名空间中导出
> require(pls)
Loading required package: pls
Attaching package: ‘pls’
The following object(s) are masked from ‘package:stats’:
loadings
> predict.mvr
Error: object 'predict.mvr' not found
> pls::predict.mvr
Error: 'predict.mvr' is not an exported object from 'namespace:pls'
> pls:::predict.mvr
function (object, newdata, ncomp = 1:object$ncomp, comps, type = c("response",
"scores"), na.action = na.pass, ...)
因此,您不能只导入它。因此,您的包需要在 DESCRIPTION 中包含 Depends: pls 才能找到正确的 predict 方法。