matlab教程_spss软件_stata教程_gtap模型_gams_minitab_mathematica_nvivo-科学软件网
使用Stata output创建动态HTML文档

stata(900x383)4-2(1).jpg

Stata output不仅能创建格式好看的文档,还能不断的更新。一个简单的方法就能跟同事分享您的Stata结果,他/她可能还是非Stata用户。

 

一种方法是使用dyndoc创建一个带有Stata  output的HTML文件。这个命令允许您合并Markdown格式文件和Stata output。例如,我们使用dyndoc创建一个report.html文件:

1.png

下面,我将向您展示如何创建这个文件,如何轻松地进行更新,以及如何实现自动化。


 

它的工作方式是创建一个文本文件,其中包含所有要运行的Stata代码和附带的文本。然后用dyndoc将这个文本文件转换成HTML文件,dyndoc将处理Markdown格式的文本和所有Stata命令,并将它们及其结果输出嵌入到结果文件中。


使用Stata output创建HTML文档

下面,我们将创建report.txt文件,它将包含纯文本、Markdown格式和Stata代码。首先,我们指定转换.txt文件所需的最低版本。然后,我们包含header.txt文件中的内容。它包含一些用于格式化HTML文档的HTML代码。

2.png

接下来,我们在报告中添加标题。在Markdown中添加第一级标题的一种方法是在文本下面加等号;也可以在文本前面加上#号;之后,我们添加纯文本来描述我们正在使用的数据和拟合的模型。

3.png

下一步是将数据加载到Stata并拟合我们的模型。在使用Markdown编写代码块时,我们可以使用三个反记号或四个波浪字符来标记开头和结尾。要处理文本文件中的Stata命令,我们需要使用动态标记<告诉Stata我们要执行或运行代码。此标记将执行代码并将输出包含在生成的HTML文件中。

4.png

接下来,我们将讨论模型中的交互以及margins命令的动向。使用Markdown,我们可以通过将文本括在两个星号之间使其加粗,因此我们对变量名和Stata命令使用这种格式。

margins中检查多行的输出并不像用marginsplot可视化结果概率那样令人兴奋,因此我们将通过使用nooutput属性省略以下命令的输出。在运行marginsplot前,我们还将更改图形方案。5.png

margins中检查多行的输出并不像用marginsplot可视化结果概率那样令人兴奋,因此我们将通过使用nooutput属性省略以下命令的输出。在运行marginsplot之前,我们还将更改图形方案。

6.png

我们已经创建了图表,但还没有将其实际包含在HTML文件中。要插入Stata图,我们需要动态标记<

7.png

我们最后添加的是一段描述图表的文字。

这就是我们想要包含在HTML文件中的所有内容,现在我们使用dyndoc并输入

8.jpg

得到需要展示的report.html文件。

 

如果您想要自己尝试一下,您可以下载report.txt, header.txt,还可以通过以下内容来调用样式表header.txt

9.jpg

stmarkdown.css Cascading样式表(CSS)。如果您使用过Markkdown,您可以使用首选样式表格式化文档。您可以下载结果report.html文件,之后更新文档。

更新HTML文档

我们很少在一次尝试中创建最终文档。无论您需要更新模型、更改图形方案或向分析中添加元素,都可以轻松地相应地更新文档。只需在文本文件中修改Stata代码,保存修改后的文本文件,然后运行dyndoc命令来更新HTML文件。这就是为什么我们将创建的文件称为动态文档。由于我们的描述和统计分析都在一个文件中,我们的文档会在分析时进行更新。

 

例如,我们运行一个margins命令来查看高血压的概率在不同的体重值之间是如何变化的。然后,我们将在文档中包含marginsplot的结果图:

13.png

首先,我们说明一下获取COVID-19数据的日期。要扩展宏“1”的内容,我们使用<标记。然后,我们将日期存储在一个名为“date”的宏中。我们悄无声息的加载数据,因为即使宏“date”将扩展到文件名,也不会反映在的输出中。然后,我们描述我们的数据。要创建报表,请输入:

14.png

创建了如下文件:

15.png

我们只指定了一个参数date,因此它存储在宏“1”中。如果指定第二个参数,它将存储在宏“2”中,依此类推。变量名也可能在这些不同的数据集中发生变化,在这种情况下,还可以使用dyndoc将这些名称指定为参数。

因为我们将日期指定为参数,所以当我们准备在别的时间执行分析时,不需要修改原始文本文件。我们只需简单的输入:

16.png

更新成别的时间的文件。

如果要创建上面显示的报表,可以按如下方式下载文本文件:

17.png

然后从上面输入dyndoc命令。您也可以指定另一个日期,只要使用mm-dd-yyyy格式。(请注意,2020122日是COVID-19数据在此存储库中可用的最早日期。)

 

您还可以通过在Stata中输入以下内容来下载生成的HTML文件的副本:

18.png

结语

这里演示了如何创建、修改和自动化动态文档。但是dyndoc命令允许您做更多的事情。除了在HTML文件中嵌入Stata输出外,还可以在整个文本中包含Stata表达式的输出,并处理以Stata表达式为条件的文本。您甚至可以创建与Microsoft Word兼容的动态文档。只需使用dyndoc指定docx选项,即可将报表创建为.docx文件而不是.html文件。要了解有关创建动态文档的更多信息,请参阅[RPT]dyndochttps://www.stata.com/manuals/rptdyndoc.pdf)。

参考文献

Dong, E., H. Du,& L. Gardner. 2020. An interactive web-based dashboard to track COVID-19 in real time. The Lancet Infectious Diseases 20: 533–534. https://doi.org/10.1016/S1473-3099(20)30120-1.


北京天演融智软件有限公司(科学软件网)是Stata软件在中国的授权经销商,不定期的举办Stata公益性活动,敬请期待。

联系方式.png 

 

联系我们

北京天演融智软件有限公司(科学软件网)

北京/广州/成都

电话:400 810 4001/ 18510103847
邮箱:
info@sciencesoftware.com.cn 
网址:
http://www.sciencesoftware.com.cn