2013-06-10 21 views
5

Zrobiłem to wiele razy w Excelu i Javie ... Tym razem muszę to zrobić za pomocą Stata, ponieważ wygodniej jest zachować zmienne "labels. Jak mogę zrestrukturyzować zestaw danych na zbiór danych poniżej?Stata. Jak przekształcić zestaw danych w czyste dane panelu?

muszę przekształcić następujące dataset_1:

enter image description here

do dataset_2:

enter image description here

Znam jeden sposób, który jest trochę niewygodne ... To znaczy, mogłem expand wszystkie obserwacje, a następnie utworzyć zmienną obsNo, a następnie, rename zmienne ... czy istnieje lepszy sposób?

Odpowiedz

6

Stata jest cudowna w takich rzeczach, to prosta reshape. Twoje dane są trochę niezręczne, ponieważ polecenie reshape zostało zaprojektowane do pracy ze zmiennymi, w których pierwsza część nazwy zmiennej (w Twoim przypadku, Wage) jest najważniejsza. W dokumentacji dla reshape, "Wage" byłby skrótem. Część następująca po Wage musi być numeryczna. Jeśli najpierw uporządkować nazwy zmiennych przez

rename (raceWhiteWage raceBlackWage raceAsianWage) (Wage1 Wage2 Wage3) 

Następnie można zrobić:

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

To powinno dać wam wyjścia Twój szukasz. Będziesz mieć kolumnę oznaczoną jako "rasa" z wartościami 1 dla Białych, 2 dla Czarnych i 3 dla Azji.

+0

Zmiana kształtu jest trudnym zadaniem, nie mogę jeszcze tego uchwycić. Sufiks stubu, Wage, musi mieć wartość numeryczną. Będę edytować moją odpowiedź teraz –

+0

świetnie, dzięki! to działa!!! – CHEBURASHKA

+0

@ Drzemka Możesz mieć przyrostki ciągów; po prostu musisz zrobić to wyraźnie za pomocą opcji 'string'. –