#stata
#stata
Вопрос:
У меня есть следующие данные, которые я хочу преобразовать в длинную форму.
year pillars Albania Algeria Angola Argentina Armenia
2007 11th pillar: Business sophistication 3.6597311 3.0576515 3.4918021 3.5915523
2007 1st pillar: Institutions 2.5269075 4.2349405 4.8290871 2.4191433
2007 8th pillar: Financial market development 3.1519065 3.3876948 4.2213437 3.3508933
2007 10th pillar: Market size 4.1176545 3.6155731 3.4919841 4.5409658
2007 3rd pillar: Macroeconomic environment 2.0992993 2.9498665 2.9116902 2.8697405
2007 6th pillar: Goods market efficiency 4.6865753 6.4130034 4.9136432 4.9837896
2007 7th pillar: Labor market efficiency 5.4585795 5.4442673 5.6051684 4.959185
2007 2nd pillar: Infrastructure 3.3452073 3.263606 3.9682149 3.2552587
2007 12th pillar: Innovation 2.9956383 2.5408542 2.9645087 2.55345
2007 4th pillar: Health and primary education 3.1417448 3.8764841 2.9889512 3.4001686
2007 9th pillar: Technological readiness 3.5059683 3.8649718 3.5275836 3.7134801
2007 5th pillar: Higher education and training 2.0516761 2.9958828 3.0272646 2.8476234
2008 6th pillar: Goods market efficiency 4.5599721 6.0840204 5.0546257 4.7323749
2008 8th pillar: Financial market development 3.3970137 3.2761169 4.1375279 3.4260495
2008 4th pillar: Health and primary education 3.3231335 3.4470269 2.9351999 3.4970362
2008 2nd pillar: Infrastructure 3.2702241 3.0345199 3.991308 3.2979792
2008 11th pillar: Business sophistication 3.6998688 2.9421291 3.4639852 3.6817465
2008 1st pillar: Institutions 2.6627262 4.1702126 4.7674605 2.4751191
2008 12th pillar: Innovation 2.8907774 2.5225983 3.1894787 2.5565684
2008 3rd pillar: Macroeconomic environment 2.2182377 2.6554869 2.8689172 2.7673965
2008 9th pillar: Technological readiness 3.6122833 3.5180317 3.5546848 3.7479288
2008 10th pillar: Market size 4.3590407 3.3022641 3.4714751 4.5656952
2008 5th pillar: Higher education and training 2.2175048 2.9590652 2.9159996 2.8734283
2008 7th pillar: Labor market efficiency 5.4704289 5.3445615 5.5795324 5.0555898
2009 2nd pillar: Infrastructure 3.3707739 3.1260049 3.9369082 3.3472921
2009 4th pillar: Health and primary education 3.6190447 3.200171 2.9427627 3.4927499
2009 8th pillar: Financial market development 3.5542132 3.2977487 4.2010233 3.4639264
2009 7th pillar: Labor market efficiency 5.4790325 5.2768175 5.5368148 5.0000323
2009 3rd pillar: Macroeconomic environment 2.4299682 2.6385734 2.9480703 2.7106974
я пытался
rename (Albania*) _=
reshape long _ , i(year) j(cname) string
Моя цель — преобразовать данные в
year Country 1st Pillar 2nd Pillar
2007 Albania 2.6627262 ..........
2008 Afghanistan 3.4627262 ......
2009 Rwanda 2.87527262 ........
Пожалуйста, помогите
Ответ №1:
Это немного запутанно, например, заголовок подразумевает переменную Armenia
, но таких значений нет.
Смотрите вики-страницу тегов Stata для получения подробной информации о том, как представить пример данных.
Подстановочный знак Albania*
не поймает ничего, кроме Albania
.
1st Pillar
не является допустимым именем переменной.
Ниже приведен пример некоторой техники.
* Example generated by -dataex-. To install: ssc install dataex
clear
input float year str41 pillar float(Albania Algeria Angola Argentina Armenia)
2007 "11th pillar: Business sophistication" 3.659731 3.0576515 3.491802 3.591552 3.591552
2007 "1st pillar: Institutions" 2.5269074 4.2349405 4.829087 2.419143 2.419143
2007 "8th pillar: Financial market development" 3.1519065 3.387695 4.2213435 3.350893 3.350893
2007 "10th pillar: Market size" 4.1176543 3.615573 3.491984 4.540966 4.540966
2007 "3rd pillar: Macroeconomic environment" 2.0992992 2.9498665 2.91169 2.8697405 2.8697405
2007 "6th pillar: Goods market efficiency" 4.6865754 6.413003 4.913643 4.983789 4.983789
2007 "7th pillar: Labor market efficiency" 5.45858 5.444267 5.605168 4.959185 4.959185
2007 "2nd pillar: Infrastructure" 3.345207 3.263606 3.968215 3.255259 3.255259
2007 "12th pillar: Innovation" 2.9956384 2.540854 2.964509 2.55345 2.55345
2007 "4th pillar: Health and primary education" 3.141745 3.876484 2.988951 3.400169 3.400169
2007 "9th pillar: Technological readiness" 3.505968 3.864972 3.5275836 3.71348 3.71348
2007 "5th pillar: Higher education and training" 2.051676 2.995883 3.0272646 2.847623 2.847623
2008 "6th pillar: Goods market efficiency" 4.5599723 6.084021 5.054626 4.7323747 4.7323747
end
gen col = word(pillar, 1)
destring col, ignore("`c(alpha)'") replace
ds year pillar col, not
rename (`r(varlist)') Y=
replace pillar = substr(pillar, strpos(pillar, ":") 2, .)
gen long obs = _n
su col, meanonly
local max = r(max)
forval j = 1/`max' {
su obs if col == `j', meanonly
local label`j' = pillar[r(min)]
}
drop obs pillar
reshape long Y, i(year col) j(where) string
reshape wide Y, i(year where) j(col)
forval j = 1/`max' {
label var Y`j' "`label`j''"
}
describe
order year where
list year-Y4
--------------------------------------------------------------
| year where Y1 Y2 Y3 Y4 |
|--------------------------------------------------------------|
1. | 2007 Albania 2.526907 3.345207 2.099299 3.141745 |
2. | 2007 Algeria 4.234941 3.263606 2.949867 3.876484 |
3. | 2007 Angola 4.829087 3.968215 2.91169 2.988951 |
4. | 2007 Argentina 2.419143 3.255259 2.86974 3.400169 |
5. | 2007 Armenia 2.419143 3.255259 2.86974 3.400169 |
|--------------------------------------------------------------|
6. | 2008 Albania . . . . |
7. | 2008 Algeria . . . . |
8. | 2008 Angola . . . . |
9. | 2008 Argentina . . . . |
10. | 2008 Armenia . . . . |
--------------------------------------------------------------