by DevinChu, 2018/12/16, NanJing
前言:WIND数据库是大家在科研路上常用的数据下载利器,但遗憾的是从WIND上下载下来的EXCEL数据文件的排列方式总是需要手工整理才能满足STATA的要求,进行后续的实证分析。出于这一需求,我们写了readWind的这一命令,用以将宽型的上市公司财务数据高效转换为长型的面板数据。
第一步:在stata中安装github的下载接口
在stata的command框中输入下面的代码耐心等待安装完成:
net install github, from("https://haghish.github.io/github/")
第二步:通过github接口安装github上的命令
在stata的command框中输入下面的代码耐心等待安装完成:
github install zhbsis/TwoSort
上述命名安装完成中你会发现你的c盘ado文件夹中的a文件夹里面多了readWind.ado的命令,这就是快速将WIND数据终端中下载的excel数据转换为有效stata数据格式的命令啦!!!
第三步:readWind对wind下载的excel格式有什么要求呢?
只要你的EXCEL数据满足下面的格式要求,都可以通过readWind读入到stata中:
股票代码 | 股票名称 | 时间1 | 时间2 | ... | 时间n |
---|---|---|---|---|---|
000016 | 深康佳A | 1.051 | .... | .... | ..... |
000017 | 深中华A | 0.951 | .... | .... | ..... |
...... | ....... | ..... | .... | .... | ..... |
第四步:如何调用执行readWind命令呢?
readWind的具体命令格式如下:
readWind, var(excel名称) timeType(时间类型) t0(样本起始时间) [split splitN(样本分割数) erase]
其中,
- excel名称就是从wind下载下来的是excel名称,建议用英文命名,最好以变量名命名,比如我下载了ROE的数据,那这个excel就命令为ROE
- 时间类型是指下载下来的数据是年度,季度还是月度,所以取值是y/q/m,暂时不支持日度
- 样本起始时间,比如你选择从1995年1月开始下载,那么这个t0里面就写1995m1,如果是1991年第1季度开始,那就写1995q1,如果是年度数据以年为变化单位那就写1995
- split splitN(n) erase这3个option是可选择的命令,主要是样本中的数据量太大时运行速度比较慢,所以我们采用了个折中的方法将样本分割成n个小样本,依次进行处理最后合并在一起。n取值越大分割的样本越小。建议n不要取值太小也不要太大。
- 另外需要注意的是,本命令是基于gather命令进行的转置,所以需要先安装tidy中的gather命令:
ssc install tidy
举个栗子:我从wind上下载了A股上市企业ROE的数据(ROE.xlsx)如下:
那么在stata中输入:
cd "C:\Users\Administrator\Desktop\ROE所在的文件夹"
readWind, var(ROE) timeType(q) t0(1995q1)
或者
readWind, var(ROE) timeType(q) t0(1995q1) split splitN(10) erase
最后就可以看到漂亮规范的数据格式啦: