news 2026/4/23 14:26:50

如何将 Stata “笔记本” 导出为 HTML

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何将 Stata “笔记本” 导出为 HTML

原文:towardsdatascience.com/how-to-export-a-stata-notebook-to-html-02ec2984da18

在数据项目协作中,有效地分享你的工作至关重要。虽然发送带注释的代码在某些情况下可能足够,但有时这还不够。

我将坦白地说,我不喜欢使用 Stata。从编程角度来看,我发现它的语法非常反直觉。但我的主要问题是,如果你不通过共享数据和 do 文件,不清楚如何分享你的工作,因为其他人可以自己运行它。

如果你们两个人都在使用代码,那没问题。然而,很多时候,其他人只想看到结果并了解你是如何实现的。自己运行代码最多是浪费时间,最坏的情况是成为一项后勤挑战。

尽管如此,我仍然需要使用这个 Stata,因为它在经济学研究中被广泛使用。

但现在我发现了解决这个问题的最佳方法。那就是使用webdoc命令。

在阅读完这篇文章后,你将能够将你的代码,例如,这个:

*Stata code*Name:Your Name*Date:October2024clearallcd"your/directory/"sysuse auto*Regression n°1regress price mpg*Graphs twoway(scatter price mpg)(lfit price mpg)

转换为如下可分享的 HTML 文档:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/971b6780cf4b3d7859320074e5d12273.png

作者提供的图片

现在想象一下所有可能的情况!

在这篇文章中,我将涵盖以下内容:

  1. 什么是 webdoc?

  2. 如何安装 webdoc

  3. 如何开始使用 webdoc

  4. 使用 Markdown 而不是 HTML

  5. 添加目录

  6. 格式化你的 HTML 文档(即让它看起来很棒 😎)

我将介绍我认为你可以立即开始使用的基礎工具来有效地分享你的工作。然而,你可以通过查看此命令的官方文档 [1],它也以网络格式提供 这里 来深入了解。

现在,让我们深入探讨!

1. 什么是 webdoc

webdoc 是一个由 Stata 社区贡献的命令,用于处理包含 Stata 命令以及 HTML 或 Markdown 代码片段的 do 文件。

webdoc 的主要目的是生成一个 HTML 文档,该文档显示 Stata 输出与软件结果窗口中显示的相同。

然而,如果你更熟悉这种标记语言,它也可以创建 Markdown 文档。稍后,你可以使用像pandoc这样的其他软件将 Markdown 转换为 HTML,以便更容易与他人分享。

2. 如何安装 webdoc

要能够在 Stata 中使用webdoc命令,你首先需要通过在 Stata 控制台中运行以下行来安装它:

ssc install webdoc,replace

要检查更新,你可以输入:

adoupdate webdoc

安装了 webdoc 后,让我们继续创建第一个包含 Stata 代码和 HTML 注释的 do 文件。

3. 如何开始使用 webdoc

基本的想法是创建一个名为 do 文件的文件。这个文件应该包含 Stata 命令和 HTML 代码的部分。然后,我们可以使用webdoc do命令处理 do 文件。

让我们按照上面提供的示例代码进行操作。首先,我们将使用webdoc init命令在开头设置 do 文件。然后,你想要在 HTML 最终文档中以文本形式出现的每个注释,你都将写作/*** text ***/。下面是如何操作的:

webdoc init example,replace logall/***<html><head><title>Example</title></head><body><h1>Stata code</h1><p>Name:Your Name<p><p>Date:October2024<p>***/sysuse auto/***<h3>Regression n°1\.</h3>***/regress price mpg/***<h3>Graphs</h3>***/twoway(scatter price mpg)(lfit price mpg)webdoc graph,caption(Figure1:Twoway plot of price by milage)cabove///title(price by mpg)attributes(width="100%")/***</body></html>***/

我还添加了webdoc graph命令,以便在上面的代码行中包含由 Stata 创建的散点图。

最后,为了处理你的文件,只需在 Stata 命令面板上运行:

webdoc do example.do

命令将创建 HTML 源文件,然后可以在浏览器中查看,看起来应该像这样:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e659066edf4101c08fbfa200393f4558.png

图片由作者提供

到目前为止,我们使用了logall选项,它告诉软件将所有 Stata 命令和输出包含到最终文档中。但有一些方法可以编辑它。

stlog选项

webdoc stlog有几个选项可以用来操作要包含在输出部分的内容。我使用最多的有:

  • nooutput: 这允许你只显示你运行的命令,但不显示输出。这在清理数据或创建新变量时特别有用。

  • nolog: 与前一个nolog相反,nolog包含输出但不包括刚刚运行的命令。

对于我们一直在跟踪的示例,第二个选项可以适用于图形命令。我们将编辑该部分,使其现在看起来像这样:

/***<h3>Graphs</h3>***/webdoc stlog,nolog twoway(scatter price mpg)(lfit price mpg)webdoc stlog close webdoc graph,caption(Figure1:Twoway plot of price by milage)cabove///title(price by mpg)attributes(width="100%")

4. 使用 Markdown 而不是 HTML

现在,让我们说实话,随着你代码的推进,在 Stata 的注释中编写 HTML 确实是一种痛苦的经历。你可以尝试在你的代码编辑器中打开文档,但需要在软件界面之间切换,这可能有些麻烦。

这就是为什么我更喜欢通过使用 Markdown 而不是 HTML 来格式化 Stata 中的文本。它更简单,更快地适应,因为没有那么多语法需要记住和编写。

如果你不太熟悉 Markdown,我在这里给你留下一个简短的介绍这里。

现在,你只需要使用webdoc init命令的md选项。例如,你可以在 do 文件的开头这样写:

webdoc init example,replace logall md

这使得输出文件使用.md后缀而不是.html

现在,你可以简单地使用 Markdown 编写所有的/*** text ***/

如果我们将前面的示例转换成 Markdown,我们得到如下内容:

webdoc init example,replace logall md/***# Stata codeName:Your Name Date:October2024***/sysuse auto/***### Regression n°1.***/regress price mpg/***### Graphs***/twoway(scatter price mpg)(lfit price mpg)webdoc graph,caption(Figure1:Twoway plot of price by milage)cabove///title(price by mpg)attributes(width="100%")

这看起来不是更干净吗?

将 Markdown 文档转换为 HTML

一旦你创建了一个包含所有注释、代码和输出的 Markdown 文档,你将想要将其转换成一个可分享的 HTML 文档,这是一个用户友好的方式来展示你的工作。

我这样做是通过在我的终端上使用pandoc。如果你已经安装了 pandoc,你可以移动到包含你想要转换的 markdown 文件的目录,然后运行以下代码块:

pandoc example.md-s-o example.html

这将从“example.md”文件中生成一个 HTML 文档。

5. 添加目录

为什么添加目录?

我们将 Stata 代码转换成可共享文档的主要目标是使与我们合作的人更容易访问与他们相关的信息。因此,在展示一段长代码时,添加目录可以极大地帮助您轻松地浏览文档。

如何添加目录?

要从 HTML 文档中的标题生成可点击的目录(TOC),你可以使用webdoc toc命令。

简单地在你想要目录出现的位置的 do 文件中包含该命令。从该位置之后的所有标题将被收集以构建目录。默认情况下,该命令收集标题从

to

.

为了使webdoc toc查找 Markdown 标题,你必须指定如下所示的md选项:

webdoc toc md

6. 格式化 HTML

要编辑文档的外观,最直接的方式是使用与webdoc init命令一起使用的header()选项。

下面是设置最初显示的最终 HTML 文档所使用的代码:

webdoc init example,replace logall md header(title(Stata Code)width(800px)stscheme(ocean)bstheme(cosmo,selfcontained))

子选项title()指定 HTML 文档头部的标签文本,子选项width()设置最大页面宽度。我喜欢使用 800px。

然后是另外两个子选项:stscheme()bstheme(),我将在下面详细解释。

格式化 Stata 输出

通过使用header()选项内的子选项stscheme()来快速开始自定义文档的外观。这个子选项可以用来更改 stata 输出的主题,你可以选择以下选项:标准工作室简单沙漠山脉海洋经典

为了给您一个更好的概念,这里有一张图片展示了每个主题下简单回归的样式。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/87a64d3f22ff61d9b646073a8eb51045.png

作者提供的图片

使用 Bootstrap

修改文档的另一种方式是通过使用bstheme()子选项来包含一个 Bootstrap CSS 文件。在示例中,我使用了bootswatch的cosmo主题,但你也可以使用你最喜欢的任何主题。

在包含我们讨论的所有格式化选项之后,你应该能够将初始 HTML 文档转换成如下所示的好看的文档。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a7e290b9895faea856cf5405029e19b1.png

作者提供的图片

结论

使用 webdoc 创建可分享的 HTML 文档为您提供了一个强大的方式,以用户友好的格式展示您的工作。不再需要要求合作者运行您的代码,现在您可以向他们提供他们所需的一切——输出、图表和解释——都在一个地方。

通过有效地使用这些工具,您可以节省时间,并使您的团队能够更容易地专注于结果。下次您在 Stata 中处理数据项目时,尝试使用 webdoc 命令,并将您的协作提升到新的水平。


参考文献

[1] Jann, Ben (2017). 在 Stata 中使用 webdoc 创建 HTML 或 Markdown 文档。Stata 期刊 17(1): 3–38.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 15:17:46

【重庆交通大学主办,SPIE稳定出版 | 连续4年见刊检索稳定,所录稿件均已EI检索,往届会后3个月EI检索,其中见刊后27天EI检索 | 高录用】第五届遥感与测绘国际学术会议(RSSM 2026)

第五届遥感与测绘国际学术会议&#xff08;RSSM 2026&#xff09; 2026 5th International Conference on Remote Sensing, Surveying and Mapping 大会时间地点&#xff1a;2026年1月16-18日丨重庆交通大学&#xff08;科学城校区&#xff09;举办 线上线下均可参会&#x…

作者头像 李华
网站建设 2026/4/23 11:36:51

理解SPA测试的核心挑战

单页面应用&#xff08;Single Page Application&#xff09;的核心在于&#xff0c;其所有必要的代码&#xff08;如HTML、JavaScript和CSS&#xff09;在初始加载时便获取完毕&#xff0c;后续的页面交互通过JavaScript动态更新内容&#xff0c;而无需完整的页面重载。这带来…

作者头像 李华
网站建设 2026/4/23 11:30:58

2025年山东大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

2025年山东大学计算机考研复试机试真题 2025年山东大学计算机考研复试上机真题 历年山东大学计算机考研复试上机真题 历年山东大学计算机考研复试机试真题 更多学校题目开源地址&#xff1a;https://gitcode.com/verticallimit1/noobdream N 诺 DreamJudge 题库&#xff1…

作者头像 李华
网站建设 2026/4/22 19:50:49

如何轻松使用 OCR 和 GPT-4o mini 提取收据信息

原文&#xff1a;towardsdatascience.com/how-to-effortlessly-extract-receipt-information-with-ocr-and-gpt-4o-mini-0825b4ac1fea 在这篇文章中&#xff0c;我将向您展示如何从收据中提取信息&#xff0c;给出一个简单的收据示例。首先&#xff0c;我们将利用 OCR 从收据中…

作者头像 李华
网站建设 2026/4/23 13:17:39

专科生必看!8个高效降AI率工具推荐

专科生必看&#xff01;8个高效降AI率工具推荐 AI降重工具&#xff0c;让论文更“自然” 随着人工智能技术的快速发展&#xff0c;越来越多的专科生在撰写论文时会借助AI工具进行辅助写作。然而&#xff0c;AI生成的内容往往带有明显的痕迹&#xff0c;不仅容易被查重系统识别为…

作者头像 李华
网站建设 2026/4/23 11:31:11

基于Vue的家教预约系统7fisz(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末

系统程序文件列表系统功能用户,教师,学级科目,预约教师,教师信息开题报告内容基于Vue的家教预约系统开题报告一、选题背景与意义1. 选题背景随着教育个性化需求增长&#xff08;2025年K12课外辅导市场规模突破8000亿元&#xff09;&#xff0c;传统家教服务面临以下痛点&#x…

作者头像 李华