命令sum2docx输出统计量表到docx文件

2017-07-14 司海涛 爬虫俱乐部 爬虫俱乐部

好消息:爬虫俱乐部出新命令啦!

 

去年,爬虫俱乐部连续发布了 chinagcode、chinaaddress、cnintraday、

subinfile、cnstock等等实用的命令,实现了中文地址与经纬度之间的转换、股票分时交易数据的抓取、文本文件的修改、股票代码的获取等等功能,并对以前发布的cntradechinafin命令做了修改,让这些命令可以在Stata14以及更高版本的环境下运行。


 

前不久,爬虫俱乐部又编写了命令wordconvert 。通过调用PowerShell

MS Word 该命令实现了rtfdocdocxpdf等文件的相互转换(pdf和xps目前只能被其他文件转成,不能转成其他文件),使得esttab生成的rtf文件在stata15中直接转换为docx文件。


         如今我们又发布了新命令sum2docx这个命令可以将描述性统计量表直接输出到一个docx文件中。

注:用这个命令之前,要安装哟ssc install sum2docx

 

sum2docx的语法结构

 sum2docx varlist [if] [in] using filename , [options]

其中,filename指的是输出的文件名,该命令的options非常丰富,这里我们介绍几个常用的选项:

replace :替换掉原有以filename命名的文件;

append :合并到原来存在的,并以filename命名的文件;

title(string) :指定描述性统计量表格的表头;

obs:观测值的个数;

mean[(fmt)] :输出平均值,并可以设定数值的显示格式;

sd[(fmt)] :输出标准差,并可以设定数值的显示格式;

min[(fmt)] :输出最小值,并可以设定数值的显示格式;

median[(fmt)] :输出中位数,并可以设定数值的显示格式;

max[(fmt) :输出最大值,并可以设定数值的显示格式。

           还有var[(fmt)]、skewness[(fmt)]、kurtosis[(fmt)]、sum[(fmt)]p1[(fmt)]

p5[(fmt)]、p10[(fmt)]等选项,读者可自行查阅help文件,了解更多的options。

栗子说明

首先,我们用putdocx命令进行文字编辑,生成一个封面并保存为mytable1.docx文件,程序如下:

clear all

cap mkdir E:\docx\

cd E:\docx\

! taskkill /F /IM WINWORD.EXE /T

putdocx begin

putdocx paragraph, halign(center)

putdocx text ("实证结果展示"), font("华为楷体",60,black) bold linebreak

putdocx text ("基本统计量表"), font("华文楷体",50,blue) bold

putdocx pagebreak

putdocx save mytable1.docx, replace     

执行结果如下:

接下来,我们以auto数据为例,输出price、mpg、weight、length、foreign这几个变量的描述性统计,并合并到文件mytable1.docx中。程序如下:

sysuse auto, clear

sum2docx price mpg weight length foreign using mytable1.docx,append obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) title("Table 1: Summary Statistics")

结果如下:

这样我们就把变量price、mpg、weight、length、foreign的观测值、平均值、标准差、最小值、中位数、最大值输出到了文件mytable1.docx中,并设定了数值的显示格式以及加上了表头。输出所有数值型变量的描述性统计,并合并到mytable1.docx文件中 。 

程序如下:

drop make

sum2docx _all using d:/temp5.docx, append obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) title("Table 1: this is the summary statistics")

执行结果如下:

这里我们用append选项将描述性统计结果合并到了之前的mytable1.docx文件中,但是我们发现两次结果出现在了同一页中,如何将不同次的结果到处到不同的页码中呢?可以通过putdocx命令进行换页,程序如下:

putdocx begin

putdocx pagebreak

putdocx save mytable1.docx,append

drop make

sum2docx _all using mytable1.docx, append obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) title("Table 2: Summary Statistics")   

执行结果如下:

这样,我们就把两次描述性统计结果输出到不同的页中。完整程序如下:

clear all

cap mkdir E:\docx\

cd E:\docx\

! taskkill /F /IM WINWORD.EXE /T

putdocx begin

putdocx paragraph, halign(center)

putdocx text ("实证结果展示"), font("华为楷体",60,black) bold linebreak

putdocx text ("基本统计量表"), font("华文楷体",50,blue) bold

putdocx pagebreak

putdocx save mytable1.docx, replace

sysuse auto, clear

sum2docx price mpg weight length foreign using mytable1.docx,append obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) title("Table 1: Summary Statistics")

putdocx begin

putdocx pagebreak

putdocx save mytable1.docx,append

drop make

sum2docx _all using mytable1.docx, append obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) title("Table 2: Summary Statistics")

winexec "C:\Program Files\Microsoft Office\Office12/WINWORD.EXE" mytable1.docx   //打开mytable1.docx文件(不同电脑word安装位置不一样,可能需要改正路径。)




    目前,我们团队还在积蓄能量憋大招,会继续发布新的命令,reg2docx即将发布,敬请期待,还有一大波double大波double大波double大波的好命令,请继续关注我们的推送!


重要通知:

即日起,爬虫俱乐部官方网站:http://www.powerofstata.club 正式运维,这里有爬虫俱乐部往期所有推文及其相关资料,也有贴心的stata技术大牛在线解答您的疑惑,欢迎广大stata爱好者在此提问、交流,共同学习!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                     文字编辑:高金凤

技术总编:刘贝贝



往期推文推荐:

1.高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3.关于RTF你不知道的命令之番外篇

4.免费事件研究,一片片从邮局寄来

5.免费的股价同步性,一片片从邮局寄来

6.Stata叫你回家听音乐了!

7.一言不合就用stata写邮件(Outlook/Foxmail)

8.听说你想知道怎么用stata画地图?

9.I have a Stata, I have a python

10.I have a Stata, I have a Python之二——pdf转word




关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部 



微信扫一扫
关注该公众号