pourquoi puis-je obtenir NAs introduit par la coercition message d'avertissement?
Je suis l'aide de la suite de "convertir " oui", "non" les réponses en données numériques, afin que je puisse tracer les résultats dans un diagramme de dispersion.
> head(cust.df$email)
[1] "yes" "yes" "yes" "yes" "no" "yes"
> as.numeric(head(cust.df$email))
[1] NA NA NA NA NA NA
Warning message:
NAs introduced by coercion
Comme vous pouvez le voir, j'obtiens ce message d'avertissement. Le résultat final est que lorsque je crée le diagramme de dispersion, il est vide, car le NAs.
J'ai même essayé de le réparer avec cette méthode.
as.factor(head(cust.df$email))
yes yes yes yes no yes
Levels: no yes
> as.numeric(head(cust.df$email))
[1] NA NA NA NA NA NA
Warning message:
NAs introduced by coercion
Cependant, aucun de qui a fonctionné. Quelqu'un aurait-il des conseils sur la façon de résoudre ce problème? Les données n'ont 341 NAs.
- Il serait plus facile de vous aider si vous fournir un reproductible exemple. Qu'est-ce que
class(cust.df$email)
? Aussi, quelles valeurs voulez-vous pour oui/non? 0/1? 1/0? 2/10? - Merci À M. Flick,
- C'est un personnage. Je veux 2=Oui, 1=Non
- Votre correctif ne fonctionne pas parce que vous avez converti facteur, mais vous n'avez pas affecter le nouveau facteur de valeurs de la variable. Vous avez besoin de faire quelque chose comme
cust.df$email <- as.numeric(as.factor(cust.df$email))
. - Je vois ce que tu veux dire. J'ai suivi vos instructions et maintenant sa fonctionne. Je vous remercie beaucoup.
Vous devez vous connecter pour publier un commentaire.
Autant que je sache, oui et non pour pas synonyme de 0 et de 1 dans R. Il continuerait de travailler avec le VRAI et le FAUX cependant. Vous devez affecter une valeur à "oui" et "non" directement.
cela va affecter 1 et 2 de vos données, si vous voulez 0 et 1, alors il suffit d'utiliser:
cust.df$email[cust.df$email==2]<-0
Une façon possible de le gérer est avec
as.numeric(as.factor(email))
dans votre nuage de points. Voici un exemple qui montre comment cela fonctionne:La raison
as.numeric(head(cust.df$email))
ne fonctionne pas c'est parce que vous ne s'affiche à l'factor
représentation dehead(cust.df$email)
, vous n'avez pas convertircust.df$email
à la factor.Une autre façon est de créer une nouvelle variable (ce qui serait un moyen facile d'utiliser des codes numériques que vous souhaitez: