136 votes

Comment éviter les avertissements lors de l'introduction forcée de NA

Je préfère généralement coder R pour ne pas recevoir d’avertissements, mais je ne sais pas comment éviter de recevoir un avertissement lorsque as.numeric utilisé pour convertir un vecteur de caractères.

Par exemple:

 x <- as.numeric(c("1", "2", "X"))
 

Me donner un avertissement parce qu'il a introduit les AN par la contrainte. Je veux que les AN soient introduites par la contrainte - existe-t-il un moyen de dire "oui, c'est ce que je veux faire". Ou devrais-je simplement vivre avec l'avertissement?

Ou devrais-je utiliser une fonction différente pour cette tâche?

152voto

Andrie Points 66979

Utilisez suppressWarnings() :

 suppressWarnings(as.numeric(c("1", "2", "X")))
[1]  1  2 NA
 

Cela supprime les avertissements.

38voto

Ari B. Friedman Points 24940

suppressWarnings() a déjà été mentionné. Une alternative consiste à convertir manuellement les caractères problématiques en NA. Pour votre problème particulier, taRifx::destring fait exactement cela. Ainsi, si vous recevez un autre avertissement inattendu de votre fonction, il ne sera pas supprimé.

 > library(taRifx)
> x <- as.numeric(c("1", "2", "X"))
Warning message:
NAs introduced by coercion 
> y <- destring(c("1", "2", "X"))
> y
[1]  1  2 NA
> x
[1]  1  2 NA
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X