当前位置:  开发笔记 > 前端 > 正文

捕获库函数的输出

如何解决《捕获库函数的输出》经验,为你挑选了1个好方法。



1> eipi10..:

您可以使用type="message"参数来捕获错误和警告capture.output.type可以是"输出",它捕获功能输出,或"消息",它捕获错误和警告.下面的函数sapply用于允许您capture.output使用每个参数运行一次,将结果存储在列表中.

capture.errors = function(type, data) {
  sapply(type, function(type) {
    capture.output(auto.arima(data), type=type)
  }, simplify=FALSE)
}

out = capture.errors(c("output","message"), testseries)

out

$output
[1] "Series: data "                                    
[2] "ARIMA(0,0,0) with non-zero mean "                 
[3] ""                                                 
[4] "Coefficients:"                                    
[5] "      intercept"                                  
[6] "       834.6000"                                  
[7] "s.e.    42.4746"                                  
[8] ""                                                 
[9] "sigma^2 estimated as 9020:  log likelihood=-29.86"
[10] "AIC=63.73   AICc=69.73   BIC=62.94"               

$message
[1] "Error in arima(x, order = c(1, d, 0), xreg = xreg) : "
[2] "  non-stationary AR part from CSS"                    
[3] "In addition: Warning message:"                        
[4] "In auto.arima(data) : Unable to calculate AIC offset" 

由于捕获模型输出capture.output可能不如捕获模型对象中的"实际"输出那样有用,因此下面的函数可能会更好.它返回一个包含模型对象的列表以及任何错误或警告消息:

capture = function(data) {
list(model=auto.arima(data),
     message=capture.output(auto.arima(data), type="message"))
}

模型对象以通常的方式提供,所以下面我只看一下消息输出.

out1 = capture(testseries)

# Show any errors and warnings
out1[["message"]]
[1] "Error in arima(x, order = c(1, d, 0), xreg = xreg) : "
[2] "  non-stationary AR part from CSS"                    
[3] "In addition: Warning message:"                        
[4] "In auto.arima(data) : Unable to calculate AIC offset" 

out2 = capture(cumsum(rnorm(100)))

# No errors or warnings with this data set
out2[["message"]]
character(0)

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有