try et tryCatch pour eviter une erreur
Bnojour,
je reviens vers vous pour un sujet de traitement d'erreurs, j'ai deux variable (x, y) dans une liste z, je veux appliquer une fonction johnsonfit aux deux éléments de la liste z, en cas d'erreur de johnsonfit je veux appliquer une autre méthode(bootstrap) sur le paramètre qui a généré l'erreur sans arrêter l'exécution est-ce que c'est possible avec un tryCatch ou try, ou vous avez une autre méthode pour résoudre ce problème, le code que j'ai testé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
for (i in 1:length(z)){
testJohnson <- try(johnsonR(z[[i]], 0.00135))
if(class(testJohnson) != "try-error"){
a= testJohnson$lowup
b= testJohnson$median
c= testJohnson$highp
}else{
prova <- bootstrap(z[i], nboot, theta)
a= quantile(prova$thetastar[1,],0.1)
b= quantile.central.MADe.BS=quantile(prova$thetastar[2,],0.5)
c= quantile.sup.MADe.BS=quantile(prova$thetastar[3,],0.9)
}
} |
ou
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
theta<-function(x){quantile(x,c(0.00135,0.5,0.99865))}
for(i in 1: length(z)){
tryCatch({
johnsonR(z[[i]], 0.00135)
a = johnsonR(z[[i]], 0.00135)$lowp
b = johnsonR(z[[i]], 0.00135)$median
c = johnsonR(z[[i]], 0.00135)$highp
}
, warning = function(war) {
# warning handler picks up where error was generated
print(paste("MY_WARNING: ",war))
}, error = function(err) {
# warning handler picks up where error was generated
print(paste("MY_ERROR: ",err))
prova <- bootstrap(z[i], nboot, theta)
a= quantile(prova$thetastar[1,],0.1)
b= quantile.central.MADe.BS=quantile(prova$thetastar[2,],0.5)
c= quantile.sup.MADe.BS=quantile(prova$thetastar[3,],0.9)
}, finally = {
print("bonjour")
})
} |
merci d'avance
je peux envoyer les deux paramètres et le code de la fonction si nécessaire