predict
определяется с аргументами object
и ...
. Я вывел PCA-подобную модель, которую я назвал pcaadd, и написал функцию predict.pcaadd
. Все идет нормально. Теперь я хотел бы добавить метод (S4), который работает для object
с подписью "pcaadd"
и объектом определенного типа в 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])
}