Comment éviter d'avertissement lors de l'introduction de NAs par la coercition
Je préfère généralement le code de R, de sorte que je ne reçois pas les mises en garde, mais je ne sais pas comment éviter d'avoir un message d'avertissement lors de l'utilisation de as.numeric
pour convertir un caractère de vecteur.
Par exemple:
x <- as.numeric(c("1", "2", "X"))
Va me donner un avertissement parce qu'il introduit NAs par la coercition. Je veux NAs introduit par la coercition est-il un moyen de dire "oui c'est ce que je veux faire". Ou devrais-je vivre avec l'avertissement?
Ou dois-je utiliser une fonction différente pour cette tâche?
- Voir
?suppressWarnings
peut-être? - Quel est le problème avec cet avertissement? Généralement, il donne des informations précieuses. Je préfère un plus détaillé de sortie dans le R de la console à de mauvaises surprises.
- Je suis totalement d'accord, mais l'utilité des avertissements diminue si vous vous habituez à juste de les ignorer. C'est pourquoi j'ai généralement comme de "s'attaquer" les mises en garde. Dans ce cas, je vais TOUJOURS de générer des avertissements, et beaucoup d'entre eux - mes données sont à venir dans des chaînes de caractères avec "X" représentant NA, et donc la fonction est de faire exactement ce que je veux faire. Je voulais dit "Merci de me le faire savoir, mais c'est ok je sais ce que je fais".
suppressWarnings
semble parfait. - Vous savez que
read.table
accepte un argumentna.strings
? - Il est utile de les supprimer si vous avez déjà un travail autour d'un bogue connu dans une bibliothèque. C'est ainsi que je vais utiliser ce!
Vous devez vous connecter pour publier un commentaire.
Utilisation
suppressWarnings()
:Cela supprime les avertissements.
suppressWarnings()
a déjà été mentionné. Une alternative consiste à convertir manuellement la problématique des caractères NA la première. Pour votre problème particulier,taRifx::destring
est juste que. De cette façon, si vous obtenez quelques autres, avertissement inattendu de votre fonction, il ne sera pas supprimé.En général, la suppression de mises en garde n'est pas la meilleure solution que vous pouvez être averti lorsque certains inattendu commentaires seront fournis.
Solution ci-dessous est un wrapper pour le maintien de la juste NA cours de conversion de type de données. Ne nécessite pas de n'importe quel paquet.
suppressWarnings()
est généralement une mauvaise idée, parce que parfois nous avons besoin de voir ces avertissements.J'ai eu le même problème avec une trame de données de la colonne, je voulais l'utiliser pour l'axe des y d'un ggplot2 nuage de points, mais voici comment je l'ai résolu:
as.numeric(as.factor(columnName))
Vous pourriez trouver cela utile aussi au lieu d'utiliser
suppressWarnings()