Ich habe ein Problem mit dem Paket NLME, das den folgenden Code verwendet:
%Vor%Die Vorhersage verursacht einen Fehler und ich habe bereits gefunden, was sie im Grunde verursacht.
Das Modellobjekt speichert, wie es aufgerufen wurde, und prognostiziert scheint es zu benutzen, um eine Vorhersage zu machen, aber es kann die Formelobjekte form und ran.form nicht finden, weil es nicht nach ihnen im richtigen Namensraum sucht. In der Tat kann ich das Problem dadurch vermeiden:
%Vor%Mein langfristiges Ziel ist es jedoch, das Modell auf Festplatte zu speichern und später zu verwenden. Ich denke, ich könnte versuchen, auch die Formelobjekte zu speichern, aber das erscheint mir als eine sehr nervige und umständliche Art, mit dem Problem umzugehen.
Ich arbeite mit automatisch generierten Formelobjekten, anstatt sie explizit aufzuschreiben, weil ich viele Modelle mit verschiedenen Definitionen in einer Art Stapelverarbeitung erzeuge, so dass ich sie nicht vermeiden kann. Also wäre meine ideale Lösung eine Möglichkeit, das lme-Objekt zu erstellen, so dass ich das Formelobjekt im Nachhinein vergessen und vorhersagen kann "funktioniert einfach". Danke für jede Hilfe.
Ersetzen Sie lme(arg1, arg2, arg3)
durch do.call(lme, list(arg1, arg2, arg3))
.
Das funktioniert, weil do.call()
seine Argumentliste im aufrufenden Frame evaluiert, vor , die den Aufruf von lme()
, das es erstellt, auswertet. Um zu sehen, warum das hilft, tippe debug(predict)
ein und führe dann deinen Code und meinen Code aus und vergleiche die Debugging-Meldungen, die gedruckt werden, wenn du in den Browser gehst.
Tags und Links r