我真的很茫然。我在這裏發現了一堆關於如何重定向函數輸出的堆棧溢出的線程,但似乎沒有一個線程在我的情況下工作。捕捉庫函數的輸出
我使用library(forecast)
的arima生成很多(生成的)時間序列,其中一些具有不良屬性,導致auto.arima()
打印出錯誤和警告。無論如何,我無法捕捉到此錯誤,無論是通過tryCatch
還是capture.output()
(它僅捕獲正常預測)。
目標是捕獲下面示例引發的錯誤消息(和警告)並對其作出反應。所以基本上最後我會有一些可變形式的錯誤和預測(儘管是錯誤的)。
我明白任何意見,下面是小例子,產生錯誤:
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))
什麼......究竟......是你想捕捉?我得到:'arima(x,order = c(1,d,0),xreg = xreg)中的錯誤:來自CSS的非靜態AR部分' –
@ 42-OP正試圖捕獲由'auto引發的錯誤。 arima'。這個例子故意不起作用,爲了拋出一個錯誤。 – 2015-12-22 06:32:34
我認爲OP的目標仍然不明確。從調用到'auto.arima'的輸出(到控制檯)包括錯誤消息和模型摘要。由於錯誤報告實際上並未停止執行,因此調用確實會返回一個類爲「c」(「ARIMA」,「arima」)的對象。所以編碼的目標需要澄清。有兩種不同的解釋不同地解釋了這些目標。 –