[R-es] problemas con tryCatch

Sergio Castro castro.rodriguez.sergio en gmail.com
Jue Mayo 28 10:50:22 CEST 2015


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



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