查看原文
其他

Stata 编程导论|Do file 编程实战(二)

RStata RStata 2022-05-17

欢迎各位培训班的会员(VIP & SVIP)参加明晚 8 点的直播课程「Stata 编程导论|Do-file 编程实战(二)」

今天课程我们就用前面几次课学习的 Stata 命令解决一些实际问题!

  1. 同时使用 gather 和 spread 命令

案例:如何将从 Wind 数据库下载的数据转换成面板?

  1. 处理时间序列数据
  • 使用  freduse 将 FRED 上的数据导入 Stata
  • 使用商业日历(business-daily calendar)
  1. 数据转换与行运算
  2. 生成低频时间序列

课程内容预览

同时使用 gather 和 spread 命令

实际工作中我们遇到的数据转换可能不是简单的长转宽或宽转长,而是类似下面的这种:

假如我们有这样的一个数据:

countrytradeflowYr1990Yr1991
Armeniaimports105120
Armeniaexports90100
Boliviaimports200230
Boliviaexports80115
Colombiaimports100105
Colombiaexports7071

我们想把它转换成这样的:

countryyearexportsimports
Armenia199090105
Armenia1991100120
Bolivia199080200
Bolivia1991115230
Colombia199070100
Colombia199171105

这里就需要同时使用 gather 和 spread 命令:

* 例如下面的数据:
clear
input str8 country str7 tradeflow Yr1990 Yr1991
Armenia imports 105 120
Armenia exports 90 100
Bolivia imports 200 230
Bolivia exports 80 115
Colombia imports 100 105
Colombia exports 70 71
end

* 首先把 Yr1990 Yr1991 两个变量 gather 起来:
gather Yr*
* 去除 variable 变量里面的 Yr 字符
replace var = subinstr(var, "Yr", "", .)
* 把 variable 变量转换成数值型的
destring, replace
* 把 variable 变量重命名为 year
ren var year

* 再把 tradeflow 展开(spread),值为 value 变量的值:
spread tradeflow value

我们可以找个实例子练习下,附件中的 "企业应付账款股本资本公积.xlsx" 文件是从 Wind 数据库下载的原始数据:

import excel using "企业应付账款股本资本公积.xlsx", clear first
save 企业应付账款股本资本公积, replace

更多内容欢迎加入课程学习~

直播信息

  • 直播时间:2020 年 12 月 4 日晚 8 点;
  • 直播地址:腾讯会议(可以扫描下方二维码参加课程后查看)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存