predict
使用参数object
和...
定义。我派生了一个类似PCA的模型,我称之为pcaadd,并编写了一个predict.pcaadd
函数。到现在为止还挺好。现在,我想添加一个适用于object
签名"pcaadd"
的{S4}方法和newdata
中的特定类型的对象(签名"hyperSpec"
)。
(如何)如果仅使用object
和...
定义通用,我可以这样做吗?
这就是我现在所做的:检查newdata
的类并进行适当的处理,但这似乎不是一个干净的解决方案:
predict.pcaadd <- function (object, newdata, ...){
## deal with class "hyperSpec"
if (is (newdata, "hyperSpec")){
validObject (newdata)
## extract the matrix that is used for the prediction
newdata <- newdata [[]]
}
## default part of prediction
tmp <- predict (object$pca, newdata)
tcrossprod (tmp [, - object$refcomps], object$pca$rotation [, -object$refcomps])
}
答案 0 :(得分:1)
最后,我在as.matrix (object)
函数中使用predict
来处理不同类型newdata
的正确调度(因为它可以为任何类型的{{1}定义}})。