上手 Copilot:在 VS Code 里写 Stata

Hands-on Copilot: Writing Stata in VS Code

沈明宏 · 上海纽约大学 博士后

第15届 · 应用社会科学研究方法研修班
《数据分析专题》系列讲座

2026 年 7 月 22 日

认识 Copilot

你现在怎么写 Stata?

Stata 自带的 do-file 编辑器

  • 几乎没有自动补全
  • 变量名、宏、结果全靠手敲
  • 旧版本(≤ 15)连命令补全都没有
  • 记不住选项,就要翻 help

我们今天要换的环境

  • VS Code + Stata 扩展
  • 语法高亮、代码片段
  • GitHub Copilot 行内自动补全
  • 一键把代码送进 Stata 运行

写 Stata 的痛,多半不在统计,而在重复敲字

三个层次:对话 → 补全 → 智能体

今天起点:② 补全。 你仍然逐行掌控代码,只是敲得更快。

本场后半段:③ 智能体。 用一句话,让它读数据、写代码、出结果。

什么是 GitHub Copilot?

它是什么

  • 编辑器里的 AI 行内补全
  • 灰色”幽灵文字”,按 Tab 接受
  • 读你光标周围的上下文来猜
  • 装在 VS Code 里,不离开编辑器

和聊天机器人的区别

  • 聊天:你切到网页问一段
  • Copilot:在你写代码时就地接话
  • 不打断节奏,边写边补
  • 学生 / 教师 可免费申请

一句话:Copilot 是会写代码的输入法。你起头,它补全;你定夺,按 Tab 收下。

Copilot 怎么帮你写 Stata(注释即提示)

技巧:先用一行注释说清你要做什么,Copilot 顺着补出命令。

你输入(一行 Stata 注释)→ Copilot 自动补全(灰色幽灵文字,按 Tab 接受):

⇥ Tab 接受

注释写得越具体,补全越准。变量名、选项、if/in 条件 都可以在注释里点名。

用好 Copilot:技巧

六个核心技巧

① 注释即提示 先写一行注释说清你要做什么,让它顺着补。

② 顶部先写目标 文件开头写下整体目标,给 Copilot 全局上下文。

③ 拆成小步 一次只写一行,接受后再写下一句,预测更准。

④ 给个例子 在注释里写一个「输入 → 输出」样例,照着补。

⑤ 命名要清楚 不怕变量名长,只怕晦涩难懂。

⑥ 打开相关文件 Copilot 会读你打开的标签页,借此理解上下文。

统计工具选择

同一招”注释即提示”,在训练数据丰富的语言上效果最好:

R · dplyr

Python · pandas

接受与切换:快捷键 + 行内对话

操作 快捷键 (Windows)
接受建议 Tab
拒绝 / 取消 Esc
接受下一个词 Ctrl + →
下一个 / 上一个建议 Alt + ] · Alt + [
手动触发建议 Alt + \
打开补全面板(多个候选) Ctrl + Enter
行内对话 Ctrl + I

现场看看: 写一行注释 → 看灰色补全 → 按下面的键操作(每按一次 → 演示一个键)。

⇥ Tab 接受整行 ␛ Esc 放弃 Ctrl + → 接一词

行内对话(Ctrl + I)+ 斜杠命令 是”一次补全不够”时的定点操作:
/explain 解释 · /fix 修错 · /tests 写测试 · /doc 写文档。

搭环境:VS Code + Stata

为什么用 VS Code,而不是 Stata 自带编辑器?

Stata 自带编辑器的自动补全,长期很弱,且高度依赖版本:

Stata 版本 自带补全 能补什么
≤ 15 完全没有
16 – 18 部分 命令 / 关键词 / 括号;不补变量名
19 / StataNow 较全 命令 + 变量名 + 宏 + 存储结果

VS Code + Copilot 把这条线拉平: 无论你用的是 Stata 14 还是 19,都能获得行内 AI 补全。

三步搭建(Windows)

1

装 VS Code + Stata 扩展。 推荐 Stata All in One(高亮+补全+运行+数据浏览), 或更轻的 vscode-stata / stataRun

2

注册 Stata 自动化接口(一次性,让 VS Code 能把代码送进 Stata):

给 StataMP-64.exe 建快捷方式,目标末尾加 /Register:
"C:\Program Files\Stata18\StataMP-64.exe" /Register
右键 → 以管理员身份运行(一次即可)

← 这一步用的是老牌 Automation 接口,旧版本 Stata 同样适用

3

在扩展设置里填上 Stata 可执行文件路径。 例如 C:\Program Files\Stata18\StataMP-64.exe(旧版常在 Program Files (x86))。

让 .do 识别为 Stata + 装 Copilot

告诉 VS Code:.do 是 Stata

settings.json 里加:

"files.associations": {
  "*.do": "stata",
  "*.ado": "stata"
}

语言被认成 stata 后,高亮、补全、Copilot 的上下文 才会对。

装 CodeGeeX 并登录

  1. 扩展市场搜 CodeGeeX,安装
  2. 用智谱账号登录
  3. 打开 .do,开始打字 → 看灰字

Tab 接受,Esc 拒绝,Alt+] 看下一个建议。

运行代码:把 .do 送进 Stata

操作 vscode-stata stataRun
运行选中 / 当前行 Shift + Enter Shift + Ctrl + S
运行整个文件 Ctrl + Shift + D Shift + Ctrl + A
运行光标以下 Shift + Ctrl + D

代码在右侧真正的 Stata 窗口里执行,结果、图、r()/e() 都和平时一模一样。 快捷键名因扩展而异,以你装的扩展为准。

实战:World Values Survey

数据:World Values Survey

世界价值观调查

  • 跨国、跨期的价值观与态度调查
  • 信任、宗教、政治参与、性别观念……
  • 第 7 波覆盖 60+ 国家 / 地区
  • 社科里最常用的跨国数据之一

我们的数据位置

D:\Data\WVS\
  └─ WVS_Wave7.dta

⚠ 演示前:把真实 .dta 放进该目录, 并核对文件名与变量名(下页代码里的变量为占位示例)。

目标:用 Copilot 在 VS Code 里,对 WVS 做一段清理 → 描述 → 回归,全程 Stata。

Copilot 写清理 + 描述统计

同一页演示三种用法:写注释出命令、写几个字补全一行、顺上下文接下一步(变量名为 WVS 第 7 波占位示例):

Copilot 写回归

继续做制度信任的 logit;其中第二条反过来:写命令、让 Copilot 给你写注释(变量为占位示例):

Copilot 的边界

Copilot 在 Stata 上的短板

为什么它对 Stata 偏弱

  • 训练数据里 Stata 代码稀少(do-file 很少公开)
  • Stata 没有语言服务器,只能靠文本猜
  • 编造命令、把 SAS / R 语法混进来
  • 越是冷门命令,越容易翻车

真实翻车例子

  • 有人让它算加权方差,它凭空造出 一个根本不存在的 pwvariance
  • 把别的语言的函数名安到 Stata 上
  • 系数、选项时对时错

来源:Ozier(世界银行)、Goldsmith-Pinkham 等公开评测

铁律:Copilot 给的是草稿,不是答案。每一行都要自己跑、自己核。

从对话与补全,走向智能体

对话 · ChatGPT / Claude 解释报错、给思路。

补全 · Copilot 和你一起写,你按下每一个 Tab

智能体 · Claude Code 替你读数据、写代码、出结果。