Como saber quando se preocupar com avisos em r

Video: Como descobrir se está sendo traido usando um celular

Erros e avisos têm funções diferentes em R Você não pode contornar erros, porque eles simplesmente parar seu código. Avisos por outro lado, são um animal totalmente diferente. Mesmo se R lança um aviso, ele continua a executar o código independentemente. Você pode ignorar os avisos, mas geralmente isso é uma muito má ideia. Os avisos são muitas vezes o único sinal que você tem que seu código tem algum erro de semântica ou lógica.

Por exemplo, você poderia ter esquecido o ifelse () função e tentou algo parecido com o seguinte exemplo:

gt; X lt; - 1: 10gt; y lt; - se (x lt; 5) 0 else 1Warning mensagem: Em if (x lt; 5) 0 else 1: a condição tem comprimento gt; 1 e será usada apenas o primeiro elemento

Este pontos de alerta em um erro de semântica: E se espera que uma única VERDADE ou FALSO valor, mas você forneceu um vetor inteiro. Note-se que, assim como erros, avisos dizer que, em geral, qual o código gerou o aviso.

Aqui está outra advertência que aparece regularmente e pode apontar para um erro de semântica ou lógica em seu código:

gt; X lt; - 4GT; sqrt (x - 5) [1] mensagem NaNWarning: Em sqrt (x - 5): NaNs produzido

Porque x - 5 é negativo quando X é 4, R não pode calcular a raiz quadrada e avisa que a raiz quadrada de um número negativo não é um número (NaN).

Se você é um matemático, você pode apontar que a raiz quadrada de -1 é 0 - 1-I. R pode, de fato, fazer cálculos sobre números complexos, mas então você tem que definir suas variáveis ​​como números complexos. Você pode verificar, por exemplo, o arquivo de Ajuda ?complexo Para maiores informações.

Embora a maioria dos avisos resultar tanto erros de semântica ou lógica em seu código, mesmo um erro de sintaxe simples pode gerar um aviso em vez de um erro. Se você quiser traçar alguns pontos em R, você usa o enredo() função. Leva um argumento col para especificar a cor dos pontos, mas você poderia equivocadamente tentar colorir os pontos usando o seguinte:

Video: Como receber aviso da restituição do imposto de renda no celular

gt; trama (1:10, 10: 1, cor = `verde`)


Se você tentar fazer isso, você tem seis mensagens de aviso de uma só vez, todos dizendo que cor provavelmente não é o nome do argumento você estava procurando:

Mensagens de aviso: 1: Em plot.window (...): "cor" não é um parâmetro2 gráfica: Em plot.xy (xy, tipo, ...): "cor" não é um parâmetro gráfica ....

Observe que as mensagens de aviso não apontam para o código digitado no line- comando em vez disso, eles apontam para funções que você nunca usou antes, como plot.window () e plot.xy ().

Você pode passar argumentos de uma função para outra usando o argumento pontos. Isso é exatamente o que enredo() faz aqui. Assim, enredo() em si não gera um aviso, mas cada função que enredo() passa o cor argumento para o faz.

Se você receber mensagens de aviso ou de erro, um profundo olhar para as páginas de Ajuda da função (s) que gerou o erro pode ajudar a determinar qual é o motivo para a mensagem que você tem. Por exemplo, na página de Ajuda do ?plot.xy, você achar que o nome correto para o argumento é col.

Assim, para resumir, a maioria dos avisos apontam para um dos seguintes problemas:

  • A função lhe deu resultado, mas por algum motivo esse resultado pode não estar correto.

  • A função gerado um resultado atípico, como N / D ou NaN valores.

  • A função não poderia lidar com alguns dos argumentos e os ignorou.

Video: AVISO

Apenas o último diz que há um problema com a sua sintaxe. Para os outros, você tem que analisar seu código um pouco mais.


Publicações relacionadas