Bom que o problema se resolveu com os exemplos acima dos colegas da lista. Checagem de erro no R fora da biblioteca padrão é um caos mesmo. Poderia muito bem retornar algo diferente de string (NA por exemplo) e você ia checar e substituir como foi sugerido acima.
Abraços Em 10 de maio de 2013 15:34, Augusto Ribas <[email protected]> escreveu: > # > 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 <[email protected]>escreveu: > > Tente assim: >> >> sapply(teste, function(x)tryCatch(log(x), error = >> function(...)"verificar")) >> >> >> 2013/5/9 Augusto Ribas <[email protected]> >> >>> 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 >>> [email protected] >>> 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 >> [email protected] >> 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 > > _______________________________________________ > R-br mailing list > [email protected] > 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. > -- Biostatistician Consultant and Cogito Programmer's http://www.facebook.com/CogitoConsultoriaEstatistica Curriculum: http://lattes.cnpq.br/7541377569511492
_______________________________________________ R-br mailing list [email protected] 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.
