我学习如何检测时间序列中的异常,并使用detectAO
package中的detectIO
和TSA
函数。我在循环中使用它们,但不会抑制它们的输出。据我所知,当你在循环或函数中使用某些函数时,它们的输出会被抑制,直到你使用print()
函数。所以我检查了这些函数的源代码,作者使用了print()
。有没有方法可以在不使用sink('/dev/null')
的情况下抑制此输出?
require(TSA)
detected<-numeric(1000)
for(i in 1:10){
data<-rcauchy(1000)
model<-auto.arima(data)
#I don't want this to be printed
detected<-detectAO(model)$ind
#Only this
print(detected)
}
答案 0 :(得分:1)
require(forecast) ## for auto.arima?
for(i in 1:10){
data <- rcauchy(1000)
model <- auto.arima(data)
##I don't want this to be printed
capture.output(detected <- detectAO(model)$ind)
##Only this
print(detected)
}