命令更新之sum2docx:将描述性统计输出至Word文档
本文作者:孙雪丽
文字编辑:张语盈
技术总编:薛 原
好消息!!!爬虫俱乐部将于2019年7月5日至7月8日在武汉举行首期Python编程技术定制培训。本次培训采用理论与案例相结合的方式,旨在帮助零基础学员轻松入门Python,由浅入深学习和掌握Python爬虫技术,并明确未来更进一步的学习方向。
详细培训大纲及报名方式,请点击文末阅读原文呦~
爬虫俱乐部开发的结果输出系列命令(sum2docx、reg2docx、t2docx、corr2docx)实现了实证结果直接输出至Word文档这一功能,极大地便利了我们的科研工作,这一系列命令曾久居SSC十大热门命令之中,推出至今收到国内外许多科研工作者的点赞以及反馈,近期我们集中整理了小伙伴们反馈回来的问题,结合Stata公司对于putdocx命令的更新,对这一系列命令进行了优化和完善,使命令的执行速度更快,功能更强大。改进后的命令已上传至SSC,大家可通过以下程序进行更新:
ssc install sum2docx, replace
ssc install reg2docx, replace
ssc install t2docx, replace
ssc install corr2docx, replace
也可从爬虫俱乐部的云端数据库下载安装(以sum2docx为例):
net install sum2docx,from("https://stata-club-1257787903.cos.ap-chengdu.myqcloud.com/sum2docx") replace
细心的小伙伴已经发现了用原来的语法结构使用更新后的命令程序会报错,这是因为更新后的命令主要选项发生了很大的变化,基于此,本文及后续的几篇推文将为大家介绍更新后结果输出系列命令的用法。
sum2docx命令
1、命令介绍
还是原来的配方,还是熟悉的味道,sum2docx命令用于将变量的描述性统计信息输出到.docx文件中,语法结构为:
sum2docx varlist [if] [in] [weight] using filename , [options]
命令的主体部分增加了权重weight,通过[weight=varname]可设置权重变量,依据权重计算varlist的加权统计量,varlist为所要报告的变量名称,filename为所要输出的文件名,文件名前可设置输出文件的路径。命令的变化主要集中在选项options部分,下面为大家介绍更新后的选项:
replace选项:允许替换已经存在的同名文件。
append选项:使结果输出到一个已存在文件的中。
title()选项:指定输出表格的标题,否则标题默认为"Summary Statistics"。
pagesize(psize)选项:新增选项,用于设置输出文档的页面大小。psize取值可以为letter, legal, A3, A4, 或者B4JIS,默认设置为pagesize(A4)。
font()选项:新增选项,用于设置输出文件的字体、字号和颜色。字体默认为"Times New Roman",可以在不指定字体的情况下单独指定字号和字体颜色,font("", size)仅指定字号,font("", "", color)仅指定字体颜色。
landscape选项:新增选项,将输出文档的页面由纵向设置为横向,适合于输出的表格较宽的情况。
note()选项:新增选项,用于在输出表格的下方添加注释。该选项基于Stata15.1更新的putdocx命令中的note()选项。
stats()选项:指定要输出的统计量及格式。该选项也是新增选项,且这一选项充分体现了新老命令的不同:原先的命令将要报告的每一个统计量作为一个单独的选项放置在命令后,且统计量的输出顺序是固定的;新命令则将要报告的统计量放置在stats()选项中,且输出的结果顺序以stats()选项里面设定的统计量顺序为准。sum2docx可报告的统计量包括:N(观测值个数)、mean[(fmt)](均值)、var[(fmt)](方差)、sd[(fmt)](标准差)、skewness[(fmt)](偏度)、kurtosis[(fmt)](峰态)、sum[(fmt)](总和)、sum_w[(fmt)](权重的总和,新增)、min[(fmt)](最小值)、median[(fmt)](中值)、max[(fmt)](最大值)以及各分位数(p1、p5、p10、p25、p50、p75、p90、p95、p99)。统计量格式默认为%9.3f。
2、举个小栗子
在以上知识基础上,我们以auto数据为例,将mpg、weight、length、rep78、foreign几个变量的部分统计量(如N、mean、sd、median、p25、p75、min、max)报告至Word文档中,由于报告的统计量较多,为使排版不过于拥挤,通过landscape选项将页面横向设置,程序如下:
sysuse auto, clear
sum2docx mpg weight length rep78 foreign using 描述性统计表.docx, ///
replace stats(N mean(%9.2f) sd(%9.2f) median p25 p75 min max) ///
landscape title("auto数据描述性统计表") font("宋体",12,"black") ///
note("this is auto's Summary Statistics") pagesize(A4)
运行结束后sum2docx命令会提示我们描述性统计信息已被写入“描述性统计表.docx”文件中,点击“描述性统计表.docx”可直接打开这一文档,如下:
这样就报告了auto数据中mpg、weight、length、rep78、foreign几个变量的描述性统计信息。通过这个小栗子相信大家能感受到sum2docx命令的简单、便捷,且更新后新增的一些选项使该命令功能更加强大,sum2docx命令越来越成为论文写作当中不可或缺的一部分。
2019年6月22日至24日在河南郑州举行Stata编程技术特别训练营,此次课程的特点是零基础、案例教学、循序渐进。此次课程受河南牧业经济学院金融学院和会计学院邀请而特别定制,我们的课室还有20台机位,为回馈河南地区粉丝长期以来对我们的支持,本次课程将推出最优惠的价格面向河南省内的高校教师和学生进行小规模招生!
xtsum2docx命令
sum2docx命令在国外也受到极大的欢迎,一位来自国际货币基金组织(IMF)的Stata用户Futoshi Narita基于老版的sum2docx命令编写了xtsum2docx命令,用于将面板数据的描述性统计信息报告至.docx文档中,这一命令对sum2docx命令形成了有益的补充,在此我们进行简单介绍。首先用以下程序进行安装:
ssc install xtsum2docx
与老版的sum2docx命令相比,xtsum2docx命令增加了几个用于输出面板数据统计量的选项,同时也继承了老版sum2docx命令的全部选项,我们仅介绍与面板数据相关的选项:
xtn[(fmt)]选项:输出面板的数量,也就是截面单位被观测的个体数。
xttbar[(fmt)]选项:输出面板数据平均的时期数T并指定格式。
xtmaxb[(fmt)]选项:输出组间最大值并指定格式。
xtmaxw[(fmt)]选项:输出组内最大值并指定格式。
xtminb[(fmt)]选项:输出组间最小值并指定格式。
xtminw[(fmt)]选项:输出组内最小值并指定格式。
xtsdb[(fmt)]选项:输出组间标准差并指定格式。
xtsdw[(fmt)]选项:输出组内标准差并指定格式。
同样通过一个小栗子了解xtsum2docx命令的用法。
以网络数据abdata为例,我们报告n、w、k几个变量的组间最大最小值及标准差和组内最大最小值及标准差,程序如下:
webuse abdata.dta, clear
xtsum2docx n w k using 描述性统计表.docx, replace xtn(%9.0f) ///
xttbar(%7.0f) xtmaxb(%9.2f) xtmaxw(%9.2f) xtminb(%9.2f) ///
xtminw(%9.2f) xtsdb(%9.2f) xtsdw(%9.2f) ///
title("面板数据描述性统计表")
老版sum2docx命令运行结束并不会提示描述性统计信息已被写入文件这一字样,故需要到工作目录下手动打开生成的文件,如下:
某种程度上xtsum2docx命令是对sum2docx命令的扩展,但由于其是基于老版的sum2docx进行编写的,所以xtsum2docx命令不能计算加权统计量,不能设置输出文件的字体字号,不能设置页面大小,也不能将页面横向设置等等,在灵活性上远不如更新后的sum2docx命令,只有在少数需要报告面板数据组间组内统计量的情况下xtsum2docx命令才较为突出。
对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!
往期推文推荐
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。