Domanda

ho il problema che ho avuto un file di dati di origine enorme che sta dimostrando di testo per tutti i valori delle variabili al posto degli ID numerici. Così, per esempio, mi piacerebbe avere il genere variabile codificato come 1 e 2 invece di "femminile" e "maschile" scritto fuori. E ugualmente lo stesso per 200 altre variabili dei quali alcuni hanno fino a centinaia di valori variabili distinti.

Quindi, facendo questo manuale non è realmente un'opzione qui.

Qualcuno potrebbe per favore mi puntare a una soluzione o suggerimento all'interno R, SPSS o Python come posso assegnare un ID numerici per ciascun valore della variabile distinta?

Ho pensato che questo sarebbe stato un problema di altri gente faccia più comunemente come pure, ma non ho trovato niente di questo genere a tutti.

Grazie per tutto l'aiuto!

È stato utile?

Soluzione

SPSS ha un comando di ricodifica automatica che farà tutto il lavoro con un solo comando. per esempio:

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

Questo richiederà variabili di testo VR1 per VR100 e li Ricodifica nelle nuove variabili numeriche Kvr1 a Kvr100 in cui ogni categoria testuale nella vecchia variabile viene ora numerata automaticamente nella nuova variabile, con la categoria testuale ora utilizzato come etichetta di valore.
Il sub-comando di PRINT vi mostrerà nella finestra di output un elenco di tutti i codici numerici scelti per le categorie di testo in ciascuna variabile.
Prego la nota - utilizzando la convenzione TO (come in "VR1 a VR100") funziona solo quando le variabili sono consecutivamente ordinati nel file. Se non lo sono, bisogna nominarli separatamente.

Altri suggerimenti

È possibile utilizzare il Python sklearn pre-elaborazione LabelEncoder . Ecco qualche esempio di codice da questa pagina con i miei commenti:

# 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 si trasformare il vostro valore categoriale in un fattore.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top