2016-04-23 5 views
0

Ich versuche reshape einige Daten. Das Problem ist, dass die Daten in der Regel entweder lang oder breit sind, aber das scheint so zu sein, dass ich nicht herausfinden kann, wie man es macht. reshape. Die Daten sehen wie folgt aus:Umgestalten, wenn Jahr und Länder beide Spalten sind

year australia canada denmark ... 
1999 10   15  20 
2000 12   16  25 
2001 14   18  40 

Und ich mag es in ein Panel-Format erhalten, wie die folgenden

year country gdppc 
1999 australia 10 
2000 australia 12 
2001 australia 14 
1999 canada  16 
2000 canada  18 

Antwort

1

Das Problem nur in den Variablennamen ist. Siehe z.B. this FAQ für die Beratung, die Sie möglicherweise benötigen rename zuerst, bevor Sie können reshape.

Für kompliziertere Varianten dieses Problems mit ähnlichen Daten siehe z.B. this paper.

clear 
input year australia canada denmark 
1999 10   15  20 
2000 12   16  25 
2001 14   18  40 
end 
rename (australia-denmark) gdppc= 
reshape long gdppc , i(year) string j(country) 
sort country year 
list, sepby(country) 

    +--------------------------+ 
    | year  country gdppc | 
    |--------------------------| 
    1. | 1999 australia  10 | 
    2. | 2000 australia  12 | 
    3. | 2001 australia  14 | 
    |--------------------------| 
    4. | 1999  canada  15 | 
    5. | 2000  canada  16 | 
    6. | 2001  canada  18 | 
    |--------------------------| 
    7. | 1999  denmark  20 | 
    8. | 2000  denmark  25 | 
    9. | 2001  denmark  40 | 
    +--------------------------+