2 VS Code + nbstata + Copilot
2.1 Jupyter Notebook
第 1 讲我们在 Stata 自带界面里跑通了一段 dofile。这一讲换一个场景:在 VS Code 里新建一个 notebook 文件(.ipynb),把”写笔记”和”跑代码”放进同一个文件。
.do 很适合把一段分析固化成脚本,但代码、笔记、结果是分离的;.ipynb 则把它们合到了一起——一个单元格写文字说明,下一个单元格写代码,输出(表格、图形)直接显示在代码下方。用 notebook 而不是传统 dofile,主要有这几个好处:
- 符合交互式分析的需求,可以在一个文档中同时包含代码、输出和文字说明;
- 支持多种语言混合使用,比如 Python、R、Stata;
- 便于记录分析过程,生成可复现的研究报告;
- 可以借助 AI 辅助生成代码、注释和分析报告。
2.2 VS Code + nbstata
要在 notebook 里运行 Stata 代码,靠的是一个叫 nbstata 的 Jupyter 内核。把它和 VS Code 搭配起来,好处很直接:一个编辑器里就能同时写笔记、跑多种语言的代码,而 Copilot 和后面几讲要用的 Agent 也都在同一个环境中协作,不必在多个软件之间来回切换。
安装并不复杂(注意:nbstata 目前只支持 Python 3.11 及以下,需单独建一个 3.11 环境):本仓库 环境配置 的第 2 节给了最简步骤;若需完整流程,参见 ds2026 · 配置说明 第 2–4 章。
装好后,在 VS Code 新建一个 .ipynb,右上角内核选 Stata,就能在代码单元格里直接写:
sysuse auto, clear
summarize price mpg
scatter price mpg运行后,描述性统计的表格和散点图会直接出现在单元格下方。
2.3 Copilot:两个「时刻」
在 notebook 里写 Stata 代码时,Copilot 会在旁边给出补全建议。最值得体会的是两个「时刻」。
时刻一:写一行注释,让它生成代码。 先写一句自然语言注释:
* 载入 auto 数据,按 foreign 分组,计算 price 的均值并画柱状图回车后,Copilot 往往会在下方浮现出灰色的补全建议,按 Tab 采纳,再根据实际变量名微调即可。
时刻二:给一段旧代码加注释。 反过来,手上有一段没有注释、看不太懂的旧代码,选中它,让 Copilot Chat「逐行加中文注释」,它会解释每一行在做什么。这在阅读复现代码、接手旧项目时非常实用。
注释 ⇄ 代码可以双向生成;但采纳之后,一定要读一遍,确认变量名、选项、结果都对——Copilot 是补全助手,不替你做判断。
2.4 动手演示:在 notebook 里跑通
一次最小的演示,可以这样走一遍:
- 在 VS Code 新建一个
.ipynb,先写一个 Markdown 单元格作笔记,再建一个 Stata 代码单元格。 - 内核选 Stata,跑
sysuse auto, clear+summarize+scatter,结果直接显示在单元格下方。 - Copilot 时刻一:写一行中文注释,回车触发灰色补全,
Tab采纳后微调。 - Copilot 时刻二:选中一段无注释代码,用 Copilot Chat 让它逐行加中文注释。