前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >STATA教程之二:自动化输出描述性数据表格

STATA教程之二:自动化输出描述性数据表格

作者头像
宋彦
发布2019-07-03 17:23:33
10.3K0
发布2019-07-03 17:23:33
举报
文章被收录于专栏:一点ECON

STATA制作之:描述性数据表格

前言

本文将简单介绍如何利用Stata的tabout命令,设计出内容丰富的描述性表格。读完本文,你将能够从STATA输出几乎所有类型的描述性表格的latex代码,从而直接生产所需要的表格,插入到你的论文中。

完整版本的Tabout的用户手册请参考Tabout User Guide 。

Tabout

Tabout的核心思想是将描述性表格分成了两类:frequency table和summary table。

Frequency table, 顾名思义就是变量取值的频率分布表,而summary table则是输出例如均值、中位数等样本统计数字的表格。两种表格都可以分为oneway和twoway两种类型。

下面我们通过举例来说明tabout的完整逻辑,以及语法细节。

Frequency Table

Twoway Frequency Table

我们使用STATA自带的cancer.dta数据来制作frequency table。

数据中的两个变量drug, died分别记录了病人的用药类型,以及病人是否死亡。图一统计了使用不同药物种类的人数,以及使用各个药物后的死亡人数的分布。我们将对输出这个表格的Stata Code进行详细解释。

Imgur

代码语言:javascript
复制
 sysuse cancer, clear #delimit ; //change delimiter to ; tabout died drug using freq_two.tex, replace style(tex) c(freq col cum) // column content clab(Freq Col_Pct Cum_Pct) f(0 0 0) // column head and content formating title(Table: Twoway Frequency Table) fn(Source:auto.dta) // title and footnote topf(table_top.tex) botf(table_end.tex) ; // tex codes #delimit cr
  • 第一行 tabout died drug using freq_one.tex, replace style(tex) 是基本设置,即选择所要输出的tex file,以及设定输出的格式为tex。 值得讨论的是 died drug这两个变量的顺序。 Tabout自动将前一个变量设定为列变量,后一个变量为行变量。行变量的意思很直白,就是每个变量的值在表格中以行的形式出现。这个设定的好处是我们可以设置多个列变量,同时和行变量进行cross tabulation。(敲黑板,重点来的,考试要考的)
  • 第二行 c()是frequency table的核心选项,即表格中要输出的内容:freq, col, cum分别代表了频数,列占比,和累计百分比。
  • 第三行是输出类容的格式设定。 clab的含义是column lable,即输出内容的标题,比如频数列的标题为 Freq, 而百分比数列的标题Col_Pct。 f选项设置了每一类型的数值应当保留的小数点位数。
  • 第四行 title()设置表格标题, fn()则是脚注的设定。
  • 第五行是整个使用tabout的workflow的核心。tabout输出的虽然是tex code,但并不是完整的tex文档,我们必须添加tex文档的头尾才能编译,如下面的 topf内容就是文档的“头”, botf则是文档的“尾”。如果我们需要经常调整表格内容,手动添加显然非常的繁琐。 topf(table_top.tex) botf(table_end.tex)就可以使这一手动过程自动化。当然,你需要事先保存好如下的 topfbotf文件。

topf文件的内容为:

代码语言:javascript
复制
 \documentclass[leqno,11pt]{article} \usepackage{booktabs} \usepackage{tabularx} \begin{document}

botf文件的内容是:

代码语言:javascript
复制
 \end{document}

执行上述Stata命令之后,我们会得到一个tex文档。编译tex文档就可以生成下面的表格啦。

Imgur

另外,值得指出的是,tabout在行标题上的逻辑也较为独特,需要理解后才能很好掌握。 Tabout设置了3级行标题:如图所示,第一级标题是行变量的名称——Drug type;第二级行标题是行变量的具体取值——如Placebo, Trial drug 1等;第三级标题则是tabulate的内容——Freq, Col Pct, Cum Pct。

这三级标题的设置也可以通过h1, h2和h3来设置,本文则是用clab设置第三级标题。二者区别是clab可以改变所有panel里面的第三级标题,而h3只能改变第一个panel。

Oneway Frequency Table

虽然入门有难度,但是Tabout的好处是在理解了它的逻辑之后,稍微改动一些选项就可以生成其他类型的表格。例如,当我们需要生成只有一个变量的oneway frequency table时,只需要在选项中加入oneway即可。

代码语言:javascript
复制
 sysuse cancer, clear #delimit ; //change delimiter to ; tabout died using freq_one.tex, replace style(tex) oneway c(freq col cum) // column content clab(Freq Col_Pct Cum_Pct) f(0 2 2) // column head and content formating title(Table:Oneway Frequency Table) fn(Source:auto.dta) // title,footnote topf(table_top.tex) botf(table_end.tex) ; // tex codes #delimit cr

Imgur

Summary Table

类似的,我们只需要微调选项既可以使用tabout生成summary table。 下面我们举例说明。

Twoway Summary Table

代码语言:javascript
复制
sysuse auto, cleartabout rep78 foreign using table10.tex, replace ///style(tex) font(italic) c(mean weight) f(0c) sum ///twidth(9) h1(Car type (mean weight in lbs.)) h3(nil) ///title(Table 10: Simple twoway summary table of means) ///fn(auto.dta)

第三行是微调的核心,加入了 sum选项,即表明这里需要生成的是summary table, 而不是frequency table。另外 c()选项中的 mean weight说明了我们需要的数字是车辆的平均重量。生成的表格如下图。

Imgur

Oneway Summary Table

类似的,我们也可以生成oneway summary table。具体可见下面的代码和图,不再赘述。

代码语言:javascript
复制
sysuse auto, cleartabout foreign rep78 using table12.tex, replace ///style(tex) font(bold) twidth(13) sum npos(tufte) ///c(mean mpg mean weight mean length median price ///median headroom) f(1c 1c 1c 2cm 1c) h2(Mean Median) ///h2c(3 2) clab(MPG Weight_(lbs) Length_(in) Price ///Headroom_(in)) title(Table 12: Oneway summary table ///\\ with multiple summary measures) fn(Source: auto.dta)

Imgur

下期预告

看完本期内容是不是觉得收获到一点Econ的小技巧?下期内容更精彩,我们将讨论如何使用编程利器,Sublime,来编写STATA和Latex代码。下期内容将是一点Econ公众号图最多,内容最为丰富的一期!欢迎关注,不要错过!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一点ECON 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • STATA制作之:描述性数据表格
    • 前言
      • Tabout
        • Frequency Table
          • Twoway Frequency Table
          • Oneway Frequency Table
        • Summary Table
          • Twoway Summary Table
          • Oneway Summary Table
        • 下期预告
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档