Stata: 快速读取万德 Wind 数据 (readWind2.0)

作者:朱红兵 (南京大学)

Stata 连享会: 知乎 | | 码云 | CSDN

  • 连享会推文集锦
  • Stata连享会 精品专题 || 精彩推文
    Stata: 快速读取万德 Wind 数据 (readWind2.0)_第1张图片
    点击此处-查看完整推文列表

2020寒假Stata现场班 (北京, 1月8-17日,连玉君-江艇主讲),「+助教招聘」

Stata: 快速读取万德 Wind 数据 (readWind2.0)_第2张图片
2020寒假Stata现场班

前言: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 文件夹中的 a 文件夹里面多了readWind这个 ado 命令,这就是将 Wind 数据终端中下载的 excel 数据转换为能够直接进行实证分析的 long 型数据格式的命令啦!!!

第三步:readWind 对 Wind 下载的 EXCEL 格式有什么要求呢?

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

股票代码 股票名称 变量1-时间1 变量1-时间2 ... 变量1-时间n 变量2-时间1 变量2-时间2 ... 变量2-时间n
000016 深康佳A 1.1 .... .... ..... 3.1 .... .... .....
000017 深中华A 1.2 .... .... ..... 3.2 .... .... .....
...... ....... ..... .... .... ..... .... .... .... .....

第四步:如何调用执行 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),格式如下:

Stata: 快速读取万德 Wind 数据 (readWind2.0)_第3张图片
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 中看到漂亮规范的数据格式啦:

Stata: 快速读取万德 Wind 数据 (readWind2.0)_第4张图片
readWind2.0素材_整理结果.png

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 推文同步发布于 CSDN 、 和 知乎Stata专栏。可在百度中搜索关键词 「Stata连享会」查看往期推文。
  • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
  • 欢迎赐稿: 欢迎赐稿。录用稿件达 三篇 以上,即可 免费 获得一期 Stata 现场培训资格。
  • E-mail: [email protected]
  • 往期精彩推文:一网打尽

Stata: 快速读取万德 Wind 数据 (readWind2.0)_第5张图片
欢迎加入Stata连享会(公众号: StataChina)

C5OhRqjkOw)

你可能感兴趣的:(Stata: 快速读取万德 Wind 数据 (readWind2.0))