2013-06-10 25 views
5

Ho fatto questo molte volte con Excel e Java ... Questa volta ho bisogno di farlo usando Stata perché è più conveniente conservare le variabili 'labels. Come posso ristrutturare dataset_1 nel dataset_2 di seguito?Stata. Come trasformare un set di dati in dati panel puri?

Ho bisogno di trasformare i seguenti dataset_1:

enter image description here

in dataset_2:

enter image description here

So che un modo, che è un po 'imbarazzante ... Voglio dire, potrei expand tutte le osservazioni, quindi creare la variabile obsNo e quindi, rename variabili ... c'è un modo migliore?

risposta

6

Stata è meraviglioso in questo genere di cose, è un semplice reshape. I tuoi dati sono un po 'scomodi, dal momento che il comando reshape è stato progettato per funzionare con variabili in cui la parte comune del nome della variabile (nel tuo caso, Salario) viene prima. Nella documentazione di reshape, "Salario" sarebbe lo stub. La parte che segue Wage deve essere numerica. Se si ordina prima i vostri nomi delle variabili da

rename (raceWhiteWage raceBlackWage raceAsianWage) (Wage1 Wage2 Wage3) 

Poi si può fare:

reshape long Wage, i(state year) j(race) 

Questo dovrebbe dare l'output che state cercando. Avrai una colonna denominata "gara", con valori di 1 per il bianco, 2 per il nero e 3 per l'asiatico.

+0

Reshape è un comando difficile, non riesco nemmeno a capirlo. Il suffisso dello stub, Wage, deve essere numerico. Modificherò la mia risposta ora –

+0

grande, grazie! Funziona!!! – CHEBURASHKA

+0

@Snoozer È possibile avere suffissi di stringa; devi solo renderlo esplicito con l'opzione 'string'. –