我正在使用函數「trycatch」來跳過R中的循環中的一些錯誤,我想在if語句中使用錯誤消息,但我不不知道該怎麼做。我只想在沒有錯誤的情況下遞增計數器,因爲「trycatch」正確跳過錯誤,但也會增加計數器。這是我的代碼,如果你想看到它:我如何使用一個錯誤作爲if語句在R
n=1000
j=0
true.out<-matrix(0,nrow=1000,ncol=500)
ident.out<-matrix(0,nrow=1000,ncol=500)
for(i in 1:n)
{tryCatch({
serie<-gen_3_out_garch(500,0.0126,0.0757,0.9122,3,i,i,info=F,plot=T)
info<-gen_3_out_garch(500,0.0126,0.0757,0.9122,3,i,i,info=T,plot=F)
A<-Ric_Doornik_Ooms(serie)
out_presenti<-info$"caratteristiche outliers"[,1]
out_rilevati<-as.numeric(A[,1])
true.out[j,out_presenti]<-1
ident.out[j,out_rilevati]<-2
}, error=function(e){print(paste("error in rugarch"))
})
}
但唯一想我需要知道的是如何寫的東西,如:
if("there are no errors")
{j=j+1)
謝謝你們的幫助
對不起,我不明白,我必須使用「試試看」的功能,而不是「trycatch」?然後,我的循環在trycatch函數中,我怎麼能把條件放在裏面?謝謝 –
@RiccardoRedaelli如果我理解你想要什麼,請嘗試'for(i in 1:n) {loadError = F a = try({0}} {-gen_3_out_garch(500,0.0126,0.0757,0.9122,3,i ,i,info = F,plot = T) info <-gen_3_out_garch(500,0.0126,0.0757,0.9122,3,i,i,info = T,plot = F) A <-Ric_Doornik_Ooms(serie) out_presenti <-info $「caratteristiche outliers」[,1] out_rilevati <-as.numeric(A [,1]) true.out [j,out_presenti] < - 1 ident.out [j,out_rilevati] < - 2 }) loadError < - (is(a,'try-error')| is(a,'error')) if(loadError == F){ j = j + 1 } }' – Batanichek
完美,即使我把A < - Ric_Doornik_Ooms(serie)放在裏面(is,(a,'try-error')|是(a,'error')),它也能正常工作,功能。非常感謝你!!!我在那裏呆了整個下午。 –