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é:
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) } }
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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") }) }
je peux envoyer les deux paramètres et le code de la fonction si nécessaire
Partager