webdoc——用网页报告你的统计结果

2017-10-16 张学人 爬虫俱乐部 爬虫俱乐部
请输入标题

有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

一份自己满意的学术报告,除了完稿成PDF投了期刊,还有神马办法可以让大家都来围观自己的论文结果呢?答案当然是:改写成html文件上网,让大家可以随时看见,君不见那么多大牛都有专属于自己的学术博客和个人网站,是不是也幻想过自己金光闪闪的时刻呢?什么?不会写网页,不会编程,通通没有关系——在本篇及后续系列推文中,爬虫君将为你介绍如何在Stata内通过命令快速生成属于你的统计报告网页哟~

Hello world!,让我们开题吧!

html文件

html是一个采用统一规定标记的文本文档

HTML(HyperText Markup Language)全称:超文本标记语言,是万维网上信息登载的载体语言,更是互联网文本语言的源头。HTML规定了浏览器浏览页面时,页面里的信息如何布局,什么字体,大小如何等等一系列的问题。大家可能会问,所以html文件是怎么存储这些庞大的信息呢,html会不会很大?事实上html的信息存储方式是文本存储,任何一个html文件都可以用记事本打开并流畅阅读,把这个html记事本渲染成可见的网页的工作交由浏览器来做,所以本质上,你在浏览各类网站时,本质上是在看一个个特殊格式的”txt文件”

怎样生成html文件

虽然html本质上只是由一个又一个标签构成的文本,也就是说,你可以纯手打地写出一份网页。但这实在是既费时又费力,效果也不甚理想。所幸Stata有着强大的生成html网页的命令——webdoc,可以将一份文本文档转为html文件。

webdoc命令

webdoc 是一项外部命令,在使用它之前,我们需要使用 ssc install webdoc 来安装。安装完毕后,我们查阅help webdoc可知,webdoc这个命令用来将一份do文档变成html文件或markdown文件(一种轻量级标记语言)

这个命令的形式有一点特殊,它由两部分组成:

1.  第一部分是webdoc do命令,格式为: webdoc do filename [arguments] [,do_options],它用来将一个do文件转换成html文件,是在Stata命令窗口运行的。

2.   第二部分是webdoc 标签命令,它们写在这个将要被转换的do文件里。用来规定和调整关于html的各项参数。

webdoc 标签命令用于do文档中的规定:

1.  /***  ***/之间写入html代码,它们会在webdoc do命令进行处理时被直接写入html文件。

2.  webdoc init [docname][,do_options] 这一webdoc标签命令用来初始化html文件,该命令的do_options有:

   • replace:覆盖已存在的同名文件

   • logall:要求日志记录所有的Stata输出结果。

也就是说,在被转换的do文档中包含有Stata命令webdoc 标签命令还有一部分的html代码,当使用webdoc do命令转换时,有如下三个步骤:

1、Stata命令会被执行,并将执行的结果返回到html文件中;

2、webdoc标签命令会执行其相应功能;

3、html代码部分则原封不动地添加进html文件中,

这样,我们的三部分内容共同组成了最后的html文件。

举个栗子

新建一份example1.do的do文档,输入如下内容:

webdoc init example1,replace logall
/***
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1>爬虫俱乐部:追寻真相,相信数据的力量</h1>
***/
clear

input str15 prov str15 city str15 dist str60 addr str100 fulladdress

"湖北省" "武汉市" "" "南湖大道中南财经政法大学" ""

"" "北京市" "海淀区" "北京大学" "湖北省武汉市南湖大道中南财经政法大学"

end

chinagcode, baidukey("RkwfPwjwfrn0O0OZoNKz7BScyor0nZvW") province(prov) city(city) district(dist) address(addr)

list prov - addr longitude latitude
/***
</body>
</html>

注:上面程序中的百度秘钥是虚构的。

这份do文件先是用webdoc init规定,生成一份example1.html的文件,在这里我们使用logall选项是为了保留Stata在执行命令时产生的记录,以便在html中输出结果。再然后我们在/*** ***/中 输入相应的html头部的标签代码,它们是一个完整的html文件所必备的要素。在非代码区,我们使用爬虫俱乐部自己开发的Stata命令,它们先是生成 了一个关于地址的数据集,然后使用chinagcode返回了该地址所对应的经纬度。如果在之前的webdoc init中我们没有开启logall 选项,则这里会返回失败。

然后,在Stata的命令窗口输入:

webdoc do example1.do

页面显示,example1.html生成了:

我们点击上图所示的括号中example1.html,可以看到:

这样,第一份由Stata直接生成的html文档就做好了!

进一步包装

上面讲的虽然简单易行,但各位看官肯定还不够满意————难道每次打开do文件都要再写一堆<html>标签?别急,我们还有进一步的简化方法。

在 webdoc init命令中,还有一个附加选项:header选项,该选项可以通过指定参数来自动添加html文件的开头和结尾。它有如下参数:

header:

–     Main

          •   width(width) 设置页面最大宽度

          •    nofeeter 不要结尾

–    Meta data

          •  title(str) 给元数据添加一个标题,默认值为文件名

          •  charset(str) 指定字符编码格式,默认值是charset(utf-8)

–   Stylesheets

          •  bstheme[(spec)] 可以从http://bootswatch.com 中指定CSS主题(用来让你的html格式更好看)

           •  include(filename) 向<head></head>之间插入filename文件的内容。

           •  stscheme(stscheme_opts) 设置Stata输出结果的外观。

除此以外,向大家介绍第二个webdoc 标签命令webdoc write,它用于给网页插入文字,所要插入的文字只需要跟在后面即可,但是该命令只允许单行输出。

举个栗子

现在我们充分运用webdoc init命令啦,重新写一个do文件:

webdoc init example2,replace logall header(width(800px) title("my second page") stscheme(ocean cbf))
webdoc write 爬虫俱乐部:追寻真相,相信数据的力量
sysuse auto,clear
summarize price mpg
twoway (scatter price mpg) (lfit price mpg)
webdoc graph

这次我们全部取消了/******/内的代码块,佐之以init设 置来替代,令网页宽800px,标题名为“my second page”,设置Stata的输出主题ocean,选项cdf是设置stata命令行在网页中加粗显示。接着,我们输入了四条Stata命令,它们调用了 auto数据集,作了变量price和mpg的描述性统计分析,并生成了关于price 和 mpg 的散点图。  webdoc graph(这是我们用到的第三个webdoc 标签命令)将刚刚生成的散点图图片插入到网页中。

Stata命令窗口键入 webdoc do example2.do :

 点击上图所示的括号中example2.html,得到网页如下:

读者还可以发现,第二份网页比之第一份网页,在颜值上有了大大的提升,如:Stata命令和生成的图像都被蓝色的底色所衬托,并且居中显示,这些都是我们引入了ocean主题的结果。

这样一来,我们就完成了一个小目标————用一份文本与Stata命令混合的文档一键转换成了HTML文件。感觉怎么样?是不是瞬间觉得Stata瞬间又开了一项新技能?快快用起来!

没看懂记得戳下方视频学习哦!


注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

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

                        文字编辑:高金凤

技术总编:刘贝贝



往期推文推荐:

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

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

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

4.reg2docx报告你的实证结果吧!

5.爬虫俱乐部又出新命令了——wordconvert转换你的word文件

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

7.Stata 15Markdown——没有做不到,只有想不到!

8.矩阵和宏的故事

9.shelloutopen anything

10.Putpdf--神奇的转换工具



关于我们

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

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

投稿邮箱:statatraining@163.com

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

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号