干货分享:如何快速有效将WIND数据库下载的数据导入stata?——更快更好用的readWind2.0版本来啦!

by DevinChu, 2019/06/22, NanJing

前言:readWind1.0 版本发布以来,有很多小伙伴发来邮件咨询,主要提出的问题有:是否可以一次读取excel中的多个变量呢?是否可以读取指定excel的sheet表呢?是否可以读取csv格式的原始数据呢?是否可以不用分割数据集并且提高数据读取转换速度呢?为何xls后缀的excel不能识别呢等问题。为解决这些问题,进一步提高 readWind 的适用性,我们升级了 readWind 背后的程序代码,这一次的升级在解决上述问题的同时,也大大提高了运行效率,欢迎各位小伙伴使用。

WIND 数据库是大家在科研路上常用的数据下载利器,但遗憾的是从 WIND 上下载的 EXCEL 数据文件通常是横向排列的 (即 Stata 用户熟悉的 wide 格式),需要我们手工整理或采用 reshape 等命令进行转换后才能满足 Stata 的分析要求。出于这一需求,我们在 2018 年 12 月发布了新命令:readWind,用以将宽型 (wide) 的上市公司财务数据高效地转换为长型 (long) 的面板数据。为进一步提高 readWind 的适用性,我们对背后的代码进行了升级,主要增加了以下功能:(1)同时读取一张表中的多个变量,不仅仅局限于1个变量;(2)能够读取 xls 、xlsx 或 csv 格式的原始数据;(3)能够强制将原始数据转换为 string 格式,并且在读取 csv 格式数据时支持自定义编码;(4)能够读取 Excel 中指定 sheet 表中的变量数据;(5)增加了日度频率的数据支持。

1. 下载安装 readWind2.0命令

第一步:在 Stata 中安装 github 命令

在 Stata 的 command 框口中输入如下命令自动下载外部命令 github。该命令用于搜索、安装 Github 上发布的 Stata 外部命令 (若已经安装 github 命令,可以忽略此步):

net install github, from("https://haghish.github.io/github/") 

第二步:使用 github 命令安装 Github 上的命令

在 Stata 的 command 框中输入下面的代码,耐心等待安装完成:

 github install zhbsis/readWind

上述命名安装完成中你会发现你的 c 盘 ado 文件夹中的 r 文件夹里面多了readWind这个 ado 命令,这就是将 Wind 数据终端中下载的 excel 数据转换为能够直接进行实证分析的 long 型数据格式的命令啦!!!

第三步:readWind对 Wind 下载的原始数据格式有什么要求呢?

只要你的原始数据排版格式满足下面的要求,都是可以通过readWind读入到 Stata 中的:

readWind2.0素材_数据格式.png

第四步:如何调用执行readWind命令呢?

调用readWind只需在 Stata 的 command 命令框输入下述命令行即可:

readWind 变量名称(至少1个变量) , key(原始数据集名称) timeType(时间类型) t0(样本起始时间) tn(样本结束时间) [type(原始数据集格式) sheet(第几个sheet表) encoding(csv格式下的自定义编码) tostring]

其中,

  • 变量名称需要和数据集中变量的顺序对应,建议以英文命名;
  • 原始数据集名称就是从 Wind 下载下来的数据集名字,建议以英文命名;
  • 时间类型是指下载下来的样本是年度,季度还是月度数据,所以它的取值是 y/q/m/d ;
  • 样本起始时间,比如你选择从1995年1月开始下载,那么这个 t0 里面就写 1995m1 ,如果是 1995 年第 1 季度开始,那就写 1995q1 ,如果是年度数据以年为变化单位那就写 1995 ;
  • 样本结束时间,比如你的数据是截止到 2018 年 12 月,那么这个 tn 里面就写 2018m12 ,如果是2018年第4季度结束,那就写 2018q4 ,如果是年度数据以年为变化单位那就写 2018 ;
  • type(原始数据集格式) sheet(第几个sheet表) encoding(csv格式下的自定义编码) tostring这4个选项分别对应读取的原始数据集的类型, type 中的取值有 xls、xlsx 和 csv ; sheet 是指定读取的 excel 中的第几个 sheet 表,取值为 1、2、....、n,默认情况下是 sheet1 ;encoding 设定了读取样本的编码格式,这个命令建议在读取 csv 格式的原始数据时使用,通常有 utf8、utf16、GBK等类型;tostring 强制将读取的样本数据转换为字符类型,以避免在读取 csv 格式样本时出现的字符和数值冲突情况。

2. readWind2.0 的使用案例

举个栗子:我从 Wind 上下载了 A 股上市企业 ROE 的数据(ROE.xlsx),格式如下:


ROE.png

那么只需要在 stata 中输入下述命令:

/* 改变工作路径到ROE文件夹下 */
cd "ROE所在的文件夹" 
/* 读取ROE.xls中的数据,只有ROE一个变量 */
readWind ROE, key(ROE) timeType(q) t0(1995q1) tn(2017q4)

如果这个 excel 的后缀是 xls,则输入:

/* 改变工作路径到 ROE 文件夹下 */
cd "ROE所在的文件夹" 
/* 读取 ROE.xls 中的数据,只有 ROE 一个变量 */
readWind ROE, key(ROE) timeType(q) t0(1995q1) tn(2017q4) type(xls)

如果这个原始数据的后缀是 csv,则输入:

/* 改变工作路径到ROE文件夹下 */
cd "ROE所在的文件夹" 
/* 读取ROE.xls中的数据,只有ROE一个变量 */
readWind ROE, key(ROE) timeType(q) t0(1995q1) tn(2017q4) type(csv) encoding(GBK) tostring

如果原始数据集 ROA_ROE.xlsx 中含有多个变量,比如既有ROA又有ROE,那么则输入:

/* 改变工作路径到 ROA_ROE文件夹下 */
cd "ROA_ROE所在的文件夹" 
/* 读取 ROA_ROE.xls 中的数据,有 ROA 和 ROE 两个变量 */
readWind ROA ROE, key(ROA_ROE) timeType(q) t0(1995q1) tn(2017q4)

等命令运行完就可以在 Stata 中看到漂亮规范的数据格式啦:


readWind2.0素材_整理结果.png

你可能感兴趣的:(干货分享:如何快速有效将WIND数据库下载的数据导入stata?——更快更好用的readWind2.0版本来啦!)