Pracuję nad pakietem, który ma funkcję forecast.myclass
. Chcę, aby ta funkcja dobrze działała z pakietem forecast
. To znaczy. po załadowaniu pakietu forecast
kod forecast(object)
powinien wywołać forecast.myclass
z mojej paczki.Jak przedłużyć metodę S3 z innego pakietu bez ładowania pakietu
Ponieważ muszę tylko ogólną definicję forecast
z pakietu forecast
i nie używam żadnej innej funkcji z pakietu forecast
Jestem niechętny, aby uwzględnić go w Zależy. Tak więc określenie rodzajowe w moim opakowaniu w następujący sposób:
##'
##' @export
forecast <- function(object,...) UseMethod("forecast")
##' @rdname forecast.midas_r
##' @method forecast midas_r
##' @export
forecast.midas_r <- function(object,newdata=NULL,method=c("static","dynamic"),insample=get_estimation_sample(object),...) {
Teraz wszystko działa zgodnie z oczekiwaniami, gdy pakiet forecast
nie jest załadowany. Ale kiedy ładuję pakiet forecast
, wtedy forecast.midas_r
nie jest wywoływane, gdy robię forecast(object)
gdzie object
jest klasy midas_r
. Jak mam rozwiązać ten problem?
Jeśli nie dokumentujesz 'forecast.midas_r' (którego nie masz), potrzebujesz tylko' @ S3method (forcast, midas_r) '- który nie utworzy pliku Rd, ale doda poprawną linię do NAMESPACE (który jest pierwszym miejscem do sprawdzenia, jeśli masz problemy) – hadley
@hadley Udokumentuję forecast.midas_r w sposób, w jaki prognoza i forecast.midas_r udostępniają tę samą stronę pomocy. Kod jest tutaj: https://github.com/mpiktas/midasr/blob/master/R/midas_r_methods.R, zaczyna się od linii 279 – mpiktas