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

Augusto Ribas ribas.aca em gmail.com
Quinta Maio 9 17:01:19 BRT 2013


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


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