楼主: peyzf
2382 15

[数据管理求助] 如何将wdi数据变成long shape [推广有奖]

11
黃河泉 在职认证  发表于 2017-3-9 16:34:50
peyzf 发表于 2017-3-9 14:05
我想变成这种形式

国家  年份  变量
2. 虽然我上课时(刚好现在)会教此部分(也是利用 WDI 资料去 reshape),但在做研究时,我建议用 (search) wbopendata,可以直接下载 WDI 之资料 (long form)。
已有 1 人评分经验 学术水平 热心指数 收起 理由
peyzf + 20 + 1 + 1 精彩帖子

总评分: 经验 + 20  学术水平 + 1  热心指数 + 1   查看全部评分

12
蓝色 发表于 2017-3-9 16:52:35
在黄老师的code上可以简化

  1. reshape long Yr, i(country tradeflow) j(year     )
  2. reshape wide Yr, i(country year     ) j(tradeflow) string
  3. ren Yr*  *
复制代码


已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
peyzf + 20 + 1 + 1 实用的方法
黃河泉 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 20  学术水平 + 2  热心指数 + 2  信用等级 + 1   查看全部评分

13
peyzf 发表于 2017-3-9 19:36:44
感谢楼上的朋友,但如果变量特别多,除了trade,还有GDP等等一系列的变量,如何进行批量处理?

14
peyzf 发表于 2017-3-9 21:44:10
reshape long Yr, i(country tradeflow) j(year     )
reshape wide Yr, i(country year     ) j(tradeflow) string
ren Yr*  *

可以解决问题。但在我的数据中,tradeflow中变量的内容非常长,有些达到100个字符,此时会存在问题。如何处理修改变量名问题?

15
黃河泉 在职认证  发表于 2017-3-10 07:10:20
peyzf 发表于 2017-3-9 21:44
reshape long Yr, i(country tradeflow) j(year     )
reshape wide Yr, i(country year     ) j(tradeflo ...
我刚好一两分钟前得到 Clyde Schechter  的帮忙,请试试
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str52 countryname str3 countrycode str32 seriesname str17 seriescode double(yr1961 yr1962 yr1963)
  4. "Algeria"   "DZA" "GDP growth (annual %)"            "NY.GDP.MKTP.KD.ZG"  -13.60544133177008 -19.685041817762453   34.3137287655079
  5. "Algeria"   "DZA" "GDP per capita growth (annual %)" "NY.GDP.PCAP.KD.ZG" -15.726258906688656 -21.645092924427715  31.00799949233425
  6. "Argentina" "ARG" "GDP growth (annual %)"            "NY.GDP.MKTP.KD.ZG"  5.4278428795124825  -.8520215234819659 -5.308196826517275
  7. "Argentina" "ARG" "GDP per capita growth (annual %)" "NY.GDP.PCAP.KD.ZG"  3.7472630834295586 -2.4104444199804362 -6.771647194599211
  8. end

  9. encode seriesname, gen(series)
  10. label list series
  11. drop seriesname seriescode
  12. reshape long yr, i(countryname series) j(year)
  13. reshape wide yr, i(countryname year) j(series)
  14. rename yr1 gdp_growth
  15. rename yr2 gdp_per_capita_growth
  16. label var gdp_growth "GDP Growth (annual %)"
  17. label var gdp_per_capita_growth "GDP per capita growth (annual %)"
  18. list, noobs clean
复制代码
已有 1 人评分经验 学术水平 热心指数 收起 理由
peyzf + 20 + 1 + 1 精彩帖子

总评分: 经验 + 20  学术水平 + 1  热心指数 + 1   查看全部评分

16
peyzf 发表于 2017-3-11 19:20:21
感谢楼上朋友的热情帮助~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-1 03:07