Ich entwickle ein Paket mit der Funktion forecast.myclass
. Ich möchte, dass diese Funktion gut mit forecast
Paket funktioniert. I.e. Wenn forecast
Paket geladen ist, sollte der Code forecast(object)
forecast.myclass
von meinem Paket anrufen.So erweitern Sie die S3-Methode von einem anderen Paket, ohne das Paket zu laden
Da ich nur allgemeine Definition von forecast
aus dem Paket forecast
brauche, und ich verwende keine andere Funktion aus dem Paket forecast
Ich bin nur ungern in der Hängt aufzunehmen. So definiere ich die generische in meinem Paket auf folgende Weise:
##'
##' @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),...) {
Jetzt ist alles wie erwartet funktioniert, wenn Paket forecast
nicht geladen ist. Aber wenn ich das Paket forecast
lade, dann wird forecast.midas_r
nicht aufgerufen, wenn forecast(object)
tut, wobei object
der Klasse midas_r
ist. Wie soll ich dieses Problem lösen?
Sofern Sie 'prognose.midas_r' (was Sie nicht sind) dokumentieren, brauchen Sie nur' @ S3method (forcast, midas_r) '- das wird keine Rd-Datei erstellen, sondern die richtige Zeile zum NAMESPACE hinzufügen (Das ist der erste Ort, um zu sehen, wenn Sie Probleme haben) – hadley
@hadley Ich dokumentiere die Prognose.midas_r in einer Weise, dass Vorhersage und Prognose.midas_r die gleiche Hilfeseite teilen. Der Code ist hier: https://github.com/mpiktas/midasr/blob/master/R/midas_r_methods.R, beginnt bei Zeile 279 – mpiktas