Question

J'ai le problème que je suis un énorme fichier de données source qui montre le texte pour toutes les valeurs variables au lieu d'ID numériques. Ainsi, par exemple, je voudrais avoir la variable sexe codées 1 et 2 au lieu de « femme » et « homme » écrit sur. Et aussi la même chose pour 200 autres variables dont certains ont jusqu'à des centaines de valeurs variables distinctes.

Par conséquent, cette opération est un pas vraiment manuellement option ici.

Quelqu'un pourrait s'il vous plaît me pointer vers une solution ou indice dans les R, SPSS ou Python comment je peux attribuer des ID numériques à chaque valeur variable distincte?

Je pensais que ce serait un problème d'autres personnes sont confrontées plus souvent aussi bien, mais je n'ai rien trouvé de ce genre du tout.

Merci pour toute aide!

Était-ce utile?

La solution

SPSS a une commande qui recoder automatiquement faire tout le travail avec une seule commande. par exemple:

AUTORECODE vr1 to vr100 /into Kvr1 to Kvr100/PRINT.

Cela prendra des variables de texte VR1 à VR100 et les recoder dans de nouvelles variables numériques Kvr1 à Kvr100 dans lequel chaque catégorie textuelle dans l'ancienne variable est désormais automatiquement numéroté dans la nouvelle variable, avec la catégorie textuelle maintenant utilisée comme une étiquette de valeur.
La sous-commande PRINT vous montrera dans la fenêtre de sortie une liste de tous les codes numériques choisis pour les catégories de texte dans chaque variable.
S'il vous plaît noter - en utilisant la convention de TO (comme dans « VR1 à VR100 ») ne fonctionne que lorsque les variables sont successivement commandées dans le fichier. Si elles ne sont pas, vous devez les nommer séparément.

Autres conseils

Vous pouvez utiliser le pré-traitement sklearn Python LabelEncoder . Voici quelques exemples de code de cette page avec mes commentaires:

# Make a Label Encoder instance
le = preprocessing.LabelEncoder()

# Show it the data it has to encode, so your column
le.fit(["paris", "paris", "tokyo", "amsterdam"])

# Get a ordered list of all classes it found
list(le.classes_)

# Transform a column/list
le.transform(["tokyo", "tokyo", "paris"]) 

# Transform encoding back to original
list(le.inverse_transform([2, 2, 1]))

R vous tournez votre valeur en un facteur catégorique.

dfr$id = as.numeric(factor(dfr$mycolumn))

Licencié sous: CC-BY-SA avec attribution
scroll top