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

Augusto Ribas ribas.aca em gmail.com
Sexta Maio 10 16:34:04 BRT 2013


#
sapply(teste, function(x)tryCatch(log(x), error = function(...)"verificar"))
#

Isso era o que eu queria :), funcionou perfeitamente.

David, o taxisize retorna uma mensagem de erro que é uma String. Por
exemplo eu guardava os resultados numa matriz de characters, onde uma
coluna é o nome que usei para fazer a busca, a resposta quando da certo são
o nome sugerido, um score que é referente a se o nome não esta
desatualiado, se tem erro de digitação, se não mudou que são as coisas que
eu guardo.

Ai usando o try() tava ficando uma mensagem enorme nas células, ai no r so
imprimia 1 coluna por vez,  ai eu queria que ele deixa-se uma palavra menor
so para facilitar a visualização, ja que se não deu certo eu quero
verificar caso a caso mesmo, ou posso tentar denovo so com o que falhou,
porque existem muitos erros de nome de especie muito antigas, que mudou,
essas coisas que não é para dar certo mesmo
Mas acho que usando esse tryCatch ai dar certo agora.
Eu imaginei que seria melhor deixar um exemplo mais simples, que produzia o
mesmo efeito aqui, o efeito é mais ou menos o mesmo.

Mas muito obrigado pelas resposta. me ajudaram muito.

Abraços
Augusto Ribas


Em 10 de maio de 2013 14:54, Henrique Dallazuanna <wwwhsd em gmail.com>escreveu:

> Tente assim:
>
> sapply(teste, function(x)tryCatch(log(x), error =
> function(...)"verificar"))
>
>
> 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.
>>
>
>
>
> --
> Henrique Dallazuanna
> Curitiba-Paraná-Brasil
> 25° 25' 40" S 49° 16' 22" O
>
> _______________________________________________
> 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.
>



-- 
Grato
Augusto C. A. Ribas

Site Pessoal: http://recologia.com.br/ <http://augustoribas.heliohost.org>
Github: https://github.com/Squiercg
Lattes: http://lattes.cnpq.br/7355685961127056
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130510/29c2b4d5/attachment.html>


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