[R-br] duvida sobre função try {base}

Rodrigo Coster rcoster em gmail.com
Sexta Maio 10 15:39:54 BRT 2013


Da para fazer com ifelse:

ifelse(sapply(saida, class) == 'try-error', 'Verificar', saida)...

Se a ideia é só verificar se deu certo, tu pode fazer direto com o class()
dentro de um if/for...


2013/5/9 Augusto Ribas <ribas.aca em gmail.com>

> Ola, eu gostaria de saber, se tem como eu mudar de forma simples a
> mensagem de erro que o R envia  ao tentar usar uma função e receber um
> erro.
>
> Por exemplo:
>
> #Imagine que eu tenho a seguinte lista, e precise aplicar uma função
>
> #Exemplo de lista de dados
> teste<-list(2, "a", 1 , 10 , "b")
> teste
>
> #Preparando um lugar para guardar os resultados
> saida<-list()
>
> #Se eu tentar fazer um loop com for, ele vai parar
> #quando chegar a letra, porque nao da para fazer o log de caracter
> for( i in 1:length(teste)) {
>   saida[i] <-log(teste[i])
> }
>
> #nesse caso o loop para e eu nao tenho  a saida que desejo
> saida
>
> #Mas então eu tentei usar a função try
> #minha ideia era que se der para calcular, calcule
> #senão de uma msg de erro e siga em frente pro proximo
>
> for( i in 1:length(teste)) {
>   saida[[i]] <-try( log(teste[[i]][1]) )
> }
>
> #agora eu tenho minha saida, com erro onde não deu para calcular, isso
> que eu queria
> saida
>
> #o que eu queria saber se é possivel fazer o seguinte
> #se der certo, execute a função, senão imprima o erro que eu falar
> #nesse caso eu gostaria de uma saida desse tipo:
>
> saida.exemplo<-list(0.6931472,"Verificar",0,2.302585,"Verificar")
> saida.exemplo
>
> #############################################################
>
> Esse exemplo eu peguei na função try.
>
> Mas na verdade eu estou usando o pacote taxize
> (http://ropensci.github.io/taxize_/)
> para conferir nomes de especies, e para conferir listas grandes, as
> vezes para quando a conexão com a internet falha, ou o nome da especie
> não é encontrado, resumindo eu queria saber se existe uma forma de
> falar pro R, fazer isso (minha função), se der erro retorne isso
> (minha mensagem).
>
> Agradeço desde ja a atenção.
>
> --
> Grato
> Augusto C. A. Ribas
>
> Site Pessoal: http://recologia.com.br/
> Github: https://github.com/Squiercg
> Lattes: http://lattes.cnpq.br/7355685961127056
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130510/a76f7c6f/attachment.html>


Mais detalhes sobre a lista de discussão R-br