Ich bin hier wirklich ratlos. Ich habe ein paar Threads hier im Stack-Overflow gefunden, wie man die Ausgabe einer Funktion umleitet, aber nichts davon scheint in meinem Fall zu funktionieren.Catching Output einer Bibliotheksfunktion
Ich verwende Arima aus der library(forecast)
für viele (generierte) Zeitreihen, und einige von ihnen haben schlechte Eigenschaften, die auto.arima()
zum Ausdrucken eines Fehlers und einer Warnung ergibt. Ich kann diesen Fehler sowieso nicht abfangen, sei es über tryCatch
oder capture.output()
(die nur die normale Vorhersage erfasst).
Das Ziel ist es, die Fehlermeldung (und Warnung) zu erfassen, die durch das folgende Beispiel ausgelöst wird, und darauf zu reagieren. Also würde ich am Ende den Fehler und die Vorhersage (trotz Fehler) in einer variablen Form haben.
ich irgendwelche Vorschläge zu schätzen weiß, ist die folgende das minimale Beispiel der Fehler zu erzeugen:
library(forecast)
testt <- c(826,816,839,995,697)
testend <- c(2015,164)
testseries <- ts(testt,end=testend,frequency=365)
auto.arima(testseries)
#tryCatch not working:
testfc <- tryCatch(forecast(auto.arima(testseries),h=1), error=function(e) NA)
#capture.output not working:
result <- capture.output(auto.arima(testseries))
Was ... genau ... versuchen Sie zu erfassen? Ich bekomme: 'Fehler in arima (x, Reihenfolge = c (1, d, 0), xreg = xreg): nicht-stationärer AR-Teil von CSS' –
@ 42-OP versucht, den von' auto geworfenen Fehler zu erfassen. Arima. Das Beispiel funktioniert absichtlich nicht, um einen Fehler zu erzeugen. –
Ich denke, die Ziele des OP bleiben zweideutig. Die Ausgabe (an die Konsole) von diesem Aufruf an "auto.arima" enthält sowohl eine Fehlermeldung als auch eine Modellzusammenfassung. Da der Fehlerbericht die Ausführung nicht stoppt, gibt der Aufruf ein Objekt mit der Klasse 'c (" ARIMA "," arima ")' zurück. Die Ziele der Codierung müssen also geklärt werden. Es gibt zwei verschiedene Antworten, die diese Ziele unterschiedlich interpretiert haben. –