J'ai une colonne qui a des valeurs de vrai et de faux avec deux niveaux vrais et faux. p>
Comment puis-je convertir cela en une colonne de 1 et 0 à 0 avec des niveaux 1 et 0 dans R? P>
3 Réponses :
booléens lors de la convertie en numérique sont 0 et 1.
df$boolean <- as.numeric(df$factor)
Votre méthode dépend du type de «code> df $ facteur code>. Il est préférable de spécifier comment facteur df $ code> est défini. Par exemple.
df <- data.frame (facteur = ???) code>
Utiliser Utilisation AS.Factor (AS.Integer (DF $ COL)) CODE>.
dplyr code> p>
# A tibble: 7 x 1
col
<fct>
1 1
2 0
3 1
4 1
5 1
6 0
7 0
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))) code> pour éviter cela.
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
Pour l'obtenir comme un numéro, vous pouvez faire
as.numeric (var) code> et comme facteur que vous pouvez faire
facteur (as.numérique (variable) code>
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 code> deviennent des entiers
1/2 code>. Mais ils sont toujours affichés comme
0/1 code>, ce sont leurs étiquettes i>. Pour convertir en Integer, utilisez
AS.Integer (AS.Character (Boolean)) Code>.
Si vous voulez juste 1s et 0s, vous pouvez réellement faire
+ var code>