Frage

Ich habe das Problem, dass ich eine riesige Quelldatendatei erhalten habe, die Text für alle Variablenwerte anstelle von numerischen IDs anzeigt. Zum Beispiel möchte ich, dass das variable Geschlecht als 1 und 2 statt "weiblicher" und "männlicher" ausgeschrieben ist. Und gleichermaßen dieselben für 200 andere Variablen, von denen einige bis zu Hunderte unterschiedlicher Variablenwerte haben.

Daher ist es hier nicht wirklich eine Option, dies manuell zu tun.

Könnte jemand mich bitte auf eine Lösung oder einen Hinweis innerhalb von R, SPSS oder Python verweisen, wie ich jedem unterschiedlichen variablen Wert numerische IDs zuweisen kann?

Ich dachte, dies wäre ein Problem, mit dem andere Menschen auch häufiger ausgesetzt sind, aber ich habe überhaupt nichts von solchen gefunden.

Vielen Dank für jede Hilfe!

War es hilfreich?

Lösung

SPSS hat einen Autorecode -Befehl, der den gesamten Job mit einem Befehl erledigt. zum Beispiel:

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

Dadurch werden Textvariablen VR1 bis VR100 übernommen und sie in neue numerische Variablen KVR1 bis KVR100 umgewandelt, in der jede Textkategorie in der alten Variablen jetzt automatisch in der neuen Variablen nummeriert ist, wobei die Textkategorie jetzt als Wertschild verwendet wird.
Das PRINT Der Unterbefehl zeigt Sie im Ausgabefenster eine Liste aller für Textkategorien ausgewählten Zahlencodes in jeder Variablen.
Bitte beachten Sie - Verwenden Sie die TO Konvention (wie in "VR1 bis VR100") funktioniert nur, wenn die Variablen in der Datei nacheinander bestellt werden. Wenn dies nicht der Fall ist, müssen Sie sie separat benennen.

Andere Tipps

Sie können die Python Sklearn -Vorverarbeitung verwenden LabelCoder. Hier ist ein Beispielcode von dieser Seite mit meinen Kommentaren:

# 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]))

In R verwandeln Sie Ihren kategorialen Wert in einen Faktor.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top