Buenos días, Estoy realizando un desarrollo sobre un problema de programación lineal. Tengo una función en la que añado al modelo todas las restricciones y quiero controlar que esa parte no da error (por longitudes de vectores, por valores inexistentes, etc). He visto que existe, como en otros lenguajes, un tryCatch, pero no sé bien como utilizarlo. Estoy realizando pruebas a pequeña escala pero no me sale el resultado esperado. Por ejemplo con este código:> b<-0 > for (i in 1:length(a)){+ b<-b+1 + } Error: objeto 'a' no encontrado Lo que quiero es poder controlar si se devuelve error para mostrar un mensaje más explicativo. Muchas gracias. Un saludo.
Hola Sergio, Puedes evaluar tus expresiones y controlar errores dentro de la función tryCatch, por ejemplo: b <- 0 tryCatch( { for (i in 1:length(a)){ b <- b+1 } }, error = function(e){ ## Aquí puedes poner cualquier comprobación cat("Se ha producido el siguiente error: ", e$message, "\n\tComprueba que existe el objeto a\n") }, finally = { ## Aquí puedes evaluar cualquier expresión cat("Se ha producido un error en el código !!\n") } ) Un saludo, Emilio *Emilio L. Cano* Mobile: +34 665 676 225 skype: emilopezcano twitter: @emilopezcano http://emilio.lcano.com El 15 de abril de 2015, 12:20, Sergio Castro < castro.rodriguez.sergio en gmail.com> escribió:> Buenos días, > > Estoy realizando un desarrollo sobre un problema de programación > lineal. Tengo una función en la que añado al modelo todas las > restricciones y quiero controlar que esa parte no da error (por > longitudes de vectores, por valores inexistentes, etc). He visto que > existe, como en otros lenguajes, un tryCatch, pero no sé bien como > utilizarlo. Estoy realizando pruebas a pequeña escala pero no me sale > el resultado esperado. Por ejemplo con este código: > > b<-0 > > for (i in 1:length(a)){ > + b<-b+1 > + } > > Error: objeto 'a' no encontrado > > Lo que quiero es poder controlar si se devuelve error para mostrar un > mensaje más explicativo. > > Muchas gracias. > Un saludo. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Muchas gracias, eso es justo lo que necesito. Un saludo. El 15 de abril de 2015, 13:59, Emilio L. Cano <emilopezcano en gmail.com> escribió:> Hola Sergio, > > Puedes evaluar tus expresiones y controlar errores dentro de la función > tryCatch, por ejemplo: > > b <- 0 > > tryCatch( > { > for (i in 1:length(a)){ > b <- b+1 > } > }, > error = function(e){ > ## Aquí puedes poner cualquier comprobación > cat("Se ha producido el siguiente error: ", e$message, "\n\tComprueba > que existe el objeto a\n") > }, > finally = { > ## Aquí puedes evaluar cualquier expresión > cat("Se ha producido un error en el código !!\n") > } > ) > > Un saludo, > Emilio > > > *Emilio L. Cano* > > Mobile: +34 665 676 225 > skype: emilopezcano > twitter: @emilopezcano > http://emilio.lcano.com > > > El 15 de abril de 2015, 12:20, Sergio Castro < > castro.rodriguez.sergio en gmail.com> escribió: > >> Buenos días, >> >> Estoy realizando un desarrollo sobre un problema de programación >> lineal. Tengo una función en la que añado al modelo todas las >> restricciones y quiero controlar que esa parte no da error (por >> longitudes de vectores, por valores inexistentes, etc). He visto que >> existe, como en otros lenguajes, un tryCatch, pero no sé bien como >> utilizarlo. Estoy realizando pruebas a pequeña escala pero no me sale >> el resultado esperado. Por ejemplo con este código: >> > b<-0 >> > for (i in 1:length(a)){ >> + b<-b+1 >> + } >> >> Error: objeto 'a' no encontrado >> >> Lo que quiero es poder controlar si se devuelve error para mostrar un >> mensaje más explicativo. >> >> Muchas gracias. >> Un saludo. >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > >[[alternative HTML version deleted]]