0
votes

Convertir un facteur booléen en un facteur entier

J'ai une colonne qui a des valeurs de vrai et de faux avec deux niveaux vrais et faux.

Comment puis-je convertir cela en une colonne de 1 et 0 à 0 avec des niveaux 1 et 0 dans R?


4 commentaires

Pour l'obtenir comme un numéro, vous pouvez faire as.numeric (var) et comme facteur que vous pouvez faire facteur (as.numérique (variable)


Pourquoi dois-je obtenir 1s et 2s au lieu de 1s et 0s?


Les facteurs sont codés en interne sous forme d'entiers consécutifs basés sur 1. Donc, des facteurs booléens faux / true deviennent des entiers 1/2 . Mais ils sont toujours affichés comme 0/1 , ce sont leurs étiquettes . Pour convertir en Integer, utilisez AS.Integer (AS.Character (Boolean)) .


Si vous voulez juste 1s et 0s, vous pouvez réellement faire + var


3 Réponses :


-2
votes

booléens lors de la convertie en numérique sont 0 et 1.

df$boolean <- as.numeric(df$factor)


1 commentaires

Votre méthode dépend du type de «code> df $ facteur . Il est préférable de spécifier comment facteur df $ est défini. Par exemple. df <- data.frame (facteur = ???)



0
votes

Utiliser AS.Factor (AS.Integer (DF $ COL)) CODE>.

Utilisation dplyr code> p>

# A tibble: 7 x 1
  col    
  <fct>
1 1    
2 0    
3 1    
4 1    
5 1    
6 0    
7 0  


2 commentaires

Hmm pour une raison quelconque ma colonne est un facteur W / 2 niveaux: "vrai", "faux": 1 1 1 1 2 2 1 2 2 1. Pourquoi y a-t-il 1s et 2 pour les trues et les failles? Comment puis-je changer cela aux 1s et 0?


Je ne sais vraiment pas, mais ce que vous pouvez faire est df%>% mutate (col = as.Factor (if_else (col == t, 1,0))) pour éviter cela.



0
votes

Je suppose que vos données sont comme ci-dessous, qui contient une colonne code> facteur code> avec true code> et false code>.

+as.logical(df$x)

# [1] 1 1 0 0


0 commentaires