putdocx+wordconvert—将实证结果输出到Word(.docx)文档

2017-06-28 司海涛 爬虫俱乐部 爬虫俱乐部


在之前的推文中,我们讲到用rtf系列命令结合esttab和estpost将实证结果输出到rtf文件中,Stata15出现以后,我们可以利用putdocx命令创建和编辑.docx文件,今天小编给大家介绍的是,如何将实证结果输出到同一个.docx文件中。

在推文“玩转stata15—putdocx生成.docx文件”,我们介绍了如何用putdocx命令在.docx文件中录入文本内容、插入表格;推文“玩转stata15—putdocx导入图表”介绍了如何将图表输出到.docx文件;推文“玩转Stata15—putdocx append将它们粘起来!”介绍了如何多个.docx文件拼接起来。

在这几篇推文的基础之上,今天介绍如何将实证结果输出到.docx文件中,由于用putdocx命令直接将多个回归结果输出到.docx中,需要一个较为复杂的循环,因此这里的基本思路是,首先用esttab将实证结果输出到rtf文件中,然后利用wordconvert将rtf文件转换为.docx文件,(详见推文“爬虫俱乐部又出新命令了——wordconvert转换你的word文件”)最后利用putdocx append命令将两个.docx文件拼接起来。


1

编辑.docx文件文字内容

clear all

cap mkdir E:\Stata教程\docx\

cd E:\Stata教程\docx\

! taskkill /F /IM WINWORD.EXE /T

putdocx begin

putdocx paragraph, halign(center) // 写入一段,文本内容居中

putdocx text ("实证结果展示"), font("华文楷体",60,black) bold  //输出加粗文本"实证结果展示",字体为华文楷体,字号为60,颜色为黑色。

putdocx paragraph, halign(center) spacing(line,0.15) //新写入一段,文本内容居中,行间距为0.15英寸。

putdocx text ("Empirical Resutls"), font("华文楷体",30,black) bold linebreak  //输出加粗文本"Empirical Resutls",字体为华文楷体,字号为30,颜色为黑色,并换行。

putdocx text ("Prof. Chuntao Lee"), font("华文楷体",20,black) bold  linebreak //输出加粗文本"Prof. Chuntao Lee",字体为华文体,字号为20,颜色为黑色,并换行。

putdocx text ("Email:"), font("华文楷体",20,black) bold  //  输出加粗文本"Prof. Chuntao Lee",字体为华文楷体,字号为20,颜色为黑色,不进行换行。

putdocx text ("chtl@zuel.edu.cn"), font("华文楷体",15,black) bold  underline(dash) //  输出加粗文本"chtl@zuel.edu.cn",字体为华文楷体,字号为15,颜色为黑色,给文本内容加上虚下划线。

putdocx save mytable.docx, replace //将文本内容保存成mytable.docx文件。

执行结果如下:

这一部分前边推文基本上都介绍过,这里只介绍一下,段落中的一个选项spacing(position, #[unit]),这个选项是定义行间距的。其中,position代表位置,可以为before、after、line。before表示当前段落第一行之前的行间距;after表示当前段落最后一行之后的行间距;line则表示当前段落的行间距。#[unit]表示一个数值,其单位可以是in (inch), pt (point), cm (centimeter), 和 twip (twentieth of a point),默认单位为in(英尺)。

2

描述性统计结果输出到.docx文件

利用auto.dta数据,做一个描述性统计,并用esttab命输出到rtf文件中

sysuse auto, clear

estpost summarize price mpg rep78 foreign, detail

esttab using temp.rtf, cells("count mean(fmt(3)) p50 sd(fmt(2)) min max ") compress noobs replace

这样,描述性统计结果就保存在了temp.rtf文件中。


将RTF文件转换为.docx文件

      将前边用esttab输出的temp.rtf文件转换为.docx文件temp.docx,程序如下:

wordconvert "temp.rtf" "temp.docx", replace encoding(gb2312)


再次使用putdocx命令,首先用putdocx pagebreak进行换页,然后输入文本内容"Summary Statistics"(其作为描述性统计的表头),然后将其拼接到前边保存的mytable.docx中

putdocx begin

putdocx pagebreak

putdocx paragraph, halign(left)  

putdocx text ("Summary Statistics"), bold

putdocx save mytable.docx, append


   putdocx append将文档temp.docx拼接到文档mytable.docx

程序如下:

putdocx append "mytable.docx" "temp.docx",saving(mytable.docx,replace)

      putdocx append在前边的推文中已经详细的介绍过,这里不再鳌述,执行结果是把描述性统计的表格拼接到了原来保存的mytable.docx文档中。


3

输出回归分析结果到.docx文件

用esttab输出回归结果到rtf文件

sysuse auto, clear

reg mpg weight

est store m1

reg mpg weight length

est store m2

reg mpg weight length foreign

est store m3

esttab m1 m2 m3 using temp.rtf, replace

这样,回归结果就被保存在了temp.rtf 。


将rtf文件转换为.docx文件

将前边用esttab输出的temp.rtf文件转换为.docx文件temp.docx,程序如下:

wordconvert "temp.rtf" "temp.docx", replace encoding(gb2312)


再次使用putdocx命令,首先用putdocx pagebreak进行换页,然后输入文本内容"Regression Table 1"(其作为回归结果的表头),然后将其拼接到前边保存的mytable.docx中

程序如下:

putdocx begin

putdocx pagebreak

putdocx paragraph, halign(left) 

putdocx text ("Regression Table 1"), bold 

putdocx save mytable.docx, append


4.putdocx append将文档temp.docx拼接到文档mytable.docx

程序如下:

putdocx append "mytable.docx" "temp.docx",saving(mytable.docx,replace)

执行后,回归结果的表格就拼接到了之前保存的mytable.docx文档中。

到 了这里,描述性统计结果和回归结果就被输出到了同一个.docx中,其他回归结果、相关系数、t检验等结果的输出,都是这么一个过程。首先,利用 esttab输出rtf文件,然后用wordconvert将rtf文件转化为.docx文件,最后用putdocx append将两个.docx文件拼接起来。

这仅仅是Stata15众多新功能之一,后续我们会陆续介绍更多在Stata15中好玩好用的命令,好期待呐!Stata15真是好用的不得了,亲爱的读者朋友们,你有没有心动呢?北京友万信息科技有限公司作为Stata软件在中国大陆的指定经销商及合作伙伴,希望能给Stata中国用户提供更多服务与支持,并帮助中国用户建立完善的软件售后服务体系。

★ 基础服务:

1、Stata软件购买服务;

2、Stata软件升级服务;

3、Stata软件培训服务;

★ 附加服务:

4、Stata软件定制培训计划;

5、Stata软件研讨会;

6、Stata软件中国用户大会;

★ 增值服务:

7、提供数据处理/大数据分析/统计咨询及网络爬虫服务;

8、提供软件管理平台服务,本地部署让管理更便捷;

9、提供经管类案例库,可实时导出PPT格式用于老师讲课与教学相结合;

10、针对学校和科研机构提供内训服务, 行业专家上门服务。

联系人:徐青青(18610597626;010-56451129)

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

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过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分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部  



微信扫一扫
关注该公众号