总结一下,原来的文档已经过时,在某些地方存在错误或误导。
问题在于
pls包中没有名为
predict
的函数;虽然有些未导出的S3方法用于
predict
,但没有这样的
predict
。因此,你无法导入它。
predict
通用函数位于
stats包中,你需要从那里导入,如下所述。
你的包需要在
DESCRIPTION
中具有以下内容:
Depends: pls
,以便正确的
predict
方法对R可用。在
pls中没有任何可以特定导入的内容。
你还需要从
stats名称空间导入
predict
通用函数,因此请添加:
这里的主要问题是,pls没有定义predict
函数或方法。它提供了几种用于predict
通用函数的方法,但没有提供通用函数本身。
如果你需要predict
通用函数,你需要从stats包中导入它。但我不确定你是否需要它,因为你没有创建需要或基于通用函数构建的函数。至少你需要:
尽管您可能需要/想要导入整个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
方法。
pls
,直接使用pls:::predict.mvr
(并确保至少在描述IMPORTS中包含pls
以保证其安装)。 - Gregor Thomaspls:::predict.mvr
并不好,三个冒号表示你正在打听作者无意让你了解的内容。建议谨慎使用。 - Ken Williams