2016-04-23 2 views
0

Я пытаюсь reshape некоторые данные. Проблема в том, что обычно данные являются длинными или широкими, но это, похоже, настроено таким образом, что я не могу понять, как reshape. Данные выглядят следующим образом:Реорганизация, когда год и страны оба столбца

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

И я хотел бы получить его в формат панели как следующий

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

ответ

1

проблема заключается только в именах переменных. См. this FAQ за советом, который вам может понадобиться rename прежде чем вы сможете reshape.

Для более сложных вариантов этой проблемы с похожими данными см., Например, 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 | 
    +--------------------------+