[R-es] problemas con tryCatch

Sergio Castro castro.rodriguez.sergio en gmail.com
Jue Mayo 28 15:26:39 CEST 2015


Muchas gracias,

Eso me ayuda en casi todo lo que necesito, a excepción del return. Si
meto un return dentro del error, falla y sale del tryCatch, siguiendo
con la ejecución. Mi flujo es el siguiente: Tengo una función A que
llama a la función B. En la función B tengo el tryCatch. Si se produce
un error en B, que lo tengo controlado por el tryCatch, quiero
devolver un valor KO a la función A y parar la ejecución de B en ese
punto.

Un saludo.

El día 28 de mayo de 2015, 13:30, Carlos Ortega
<cof en qualityexcellence.es> escribió:
> Hola,
>
> Mira esta referencia sobre cómo usar "tryCatch()":
>
> http://www.win-vector.com/blog/2012/10/error-handling-in-r/
>
> Saludos,
> Carlos Ortega
>
> El 28 de mayo de 2015, 10:50, Sergio Castro
> <castro.rodriguez.sergio en gmail.com> escribió:
>>
>> Buenos días,
>>
>> Quiero hacer una función con un "if", que si devuelve un error dentro
>> de él se pare la ejecución de la función devolviendo un valor. El
>> código que tengo, para las pruebas, es el siguiente:
>>
>> prueba<-function(a){
>> b<-"no ha hecho stop"
>> c<-"hago el stop"
>> if(a<3){
>> variable<-"hola"
>> tryCatch({
>> write("entro en el tryCatch","")
>> d<-variable*3
>> },error=function(e){
>> return(c)
>> stop(write("ha dado error",""))
>> })
>> }else{
>> b<-a*a*a
>> }
>> return (b)
>> }
>>
>> prueba(2)
>>
>> La salida que me devuelve R por pantalla es:
>>
>> entro en el tryCatch
>> [1] "no ha hecho stop"
>>
>> Cuando la que yo quiero es:
>>
>> entro en el tryCatch
>> ha dado error
>> [1] "hago el stop"
>>
>> Es decir que me saque por pantalla el mensaje que tengo en el stop y
>> que la salida de la función sea la variable c.
>>
>> Muchas gracias por vuestra ayuda.
>>
>> Un saludo
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es



Más información sobre la lista de distribución R-help-es