vsCode+Stata:在 VScode 中编辑和运行Stata命令

发布时间:2020-05-21 阅读 281

作者: 郭皑馨 (华南理工大学)
E-mail: valerie_guo@163.com

Stata连享会   主页 || 视频 || 推文

NEW!连享会·推文专辑:
Stata资源 | 数据处理 | Stata绘图 | Stata程序
结果输出 | 回归分析 | 时间序列 | 面板数据 | 离散数据
交乘调节 | DID | RDD | 因果推断 | SFA-TFP-DEA
文本分析+爬虫 | 空间计量 | 学术论文 | 软件工具

连享会 - Stata 暑期班

线上直播 9 天:2020.7.28-8.7
主讲嘉宾:连玉君 (中山大学) | 江艇 (中国人民大学)
课程主页https://gitee.com/arlionn/PX | 微信版


目录


1. 简介

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」

在连享会过去的推文中已经有基于 Stata 内部 do-file 编辑器介绍,如:

另外,也介绍了如何配合外部编辑器来编写 Stata 代码,如:

今天这篇推文,重点补充下在 VS Code 中编辑和运行 Stata 的 do-file 。

2. 选择 VS Code 的原因

Stata 更新到 16.0 之后,已经可以在 Stata 中调用 Python,并支持 markdown 了。

随着 Python 越来越火,在连享会最近的推文中 Python 爬虫的话题也是非常多 (参见 「连享会专辑 · 文本分析+爬虫」)。在学习 Python 的过程中,我接触到了 Visual Studio Code (简称 VS Code )这一款轻量且强大的文本编辑器,就想用 VS Code 同时作为 Stata 的编辑器。简单来看下 VS Code 的优点,这些就是我选择 VS Code 的原因:

  • 轻量级文本编辑器:微软产品,小巧方便,打开速度快,能够感受到它最近比较火。
  • 功能齐全:具有文本编辑器应该具备的基本功能,比如,语法高亮、自动补全、multiple selections(一次性修改变量名)
  • 可拓展性强:可以搭配各种各样的插件,支持很多种语言,比如, Python、R、Markdown、tex 等,可以打开不同后缀的文件。

3. 方法一:基于 Stata Enhanced + Code Runner 插件

3.1 Stata Enhanced 插件

在 VS Code 的 Extension 中搜索安装 Stata Enhanced,可以实现 syntax highlighting(语法高亮)、syntax auto completion(自动补全),如果只是将 VS Code 用于编辑 do-file 就可以到此结束了。如果你还需要在此基础上运行 do-file ,则需要继续配置。

VScode 中的 Stata Enhanced 插件
VScode 中的 Stata Enhanced 插件

3.2 Rundolines 与 Rundo

Friedrich Huebler 的博客 中下载 rundolines 与 rundo,下载后我将这两个文件放置于D:\stata16\ado\personal\,解压文件后,可以用 VS Code 打开其中的 ini 文件,分别设置 rundolines 与 rundo 的 ini 文件:

  • 修改 Stata 所在路径,例如 statpath = "D:\stata16\StataSE-64.exe"
  • 修改 Stata 版本,例如 statawin = "Stata/SE 16.0

3.3 Code Runner

VS Code 中搜索并安装 code runner 插件,安照下图点击图标,调出 user settings,添加一段 json 格式代码。

将下面这段代码中的 D:\\stata16\\ado\\personal\\rundo51\\rundo.exeD:\\stata16\\ado\\personal\\rundolines51\\rundolines.exe"D:\\Stata16\\StataSE-64.exe" 修改成对应的路径,加进 user settings 中即可。

  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
    "code-runner.executorMapByFileExtension": {        ".do": "D:\\stata16\\ado\\personal\\rundo51\\rundo.exe"    },    "code-runner.customCommand": "D:\\stata16\\ado\\personal\\rundolines51\\rundolines.exe",    "stataRun.stataPath": "D:\\Stata16\\StataSE-64.exe",    "stataRun.whichApp": "stataSE",    "stataRun.pasteSpeed": 1,    "stataRun.advancePosition": false

3.4 运行

打开 file->preference->keyboard shortcuts ,可以查看运行代码的快捷键。默认快捷键是 ctrl+alt+N (运行整份文件)和 ctrl+alt+K(运行选择的代码),可以根据自己的需要进行修改。配置结束之后建议关闭 VS Code 重新打开。rundo.exe 有个 bug 会忽略文件的最后一行,记得在 do-file 最后留至少一行空。打开一份 dofile范本 试试效果,需要同时打开Stata16才能看到运行结果。

连享会 - 效率分析专题

已上线:可随时购买学习+全套课件,课程主页 已经放置板书和 FAQs
主讲嘉宾:连玉君 | 鲁晓东 | 张宁
课程主页微信版https://gitee.com/arlionn/TE

连享会-效率分析专题视频
连享会-效率分析专题视频

4. 方法二: 基于 runStata 插件 + stata-exec

第一种配置方法是我本人采用的方法。我在 VS Code 中还见到另外一个插件runStata,大家也可以通过安装 runStata 插件,实现同样的功能。该插件的配置主要基于为 Atom 提供 stata 功能的 stata-exec ,配置过程与 利用 Atom 的编辑器功能来写 dofile 的步骤类似,根据插件 Details 中提供的配置方法进行操作即可。如果已经用该方法配置过 Atom,采用这种方法应该会更加方便。

具体配置步骤如下:

(该配置步骤我没有操作过,均来源于 runStata 插件配置步骤的介绍。)

  1. 安装 runStata 插件. 同时,推荐安装 Stata Enhanced 插件用于显示 Stata 语法高亮.

  2. 安装 Node. 默认设置是按照此版本的 Node (点击可直接下载).

  3. stataRun 插件需要按照 wimax 模块来编译二进制文件. Node 需要 Python2.7 的 windows-build-tools 和 Visual Studio 编译插件. 按照时间为 20 min 需要几个 GB 的存储空间. 打开 Windows PowerShell 并输入:

  • ounter(line
   npm install --global --production windows-build-tools

第一个命令如果错误,就使用第二个命令

  • ounter(line
   npm install --global --production windows-build-tools@2.2.1
  1. 打开命令提示符(即 “cmd” )并键入:

    • ounter(line
    • ounter(line
     cd %USERPROFILE%\.vscode\extensions\yeaoh.statarun-1.1.8 npm install winax --python=%USERPROFILE%\.windows-build-tools\python27\python.exe

    VSCode中,进入Help->About。在下一个命令中,将ELECTRON_VERSION替换为About对话框中的版本。

    • ounter(line
     npm rebuild winax --runtime=electron --target=ELECTRON_VERSION  --build-from-source
  2. Link the Stata Automation library.

    在Windows 10上,Stata.exe 文件很可能在文件夹中 C:\Program Files (x86)\Stata15.

    1. 在安装目录中,右键单击Stata可执行文件,例如StataSE.exe。选择创建快捷键。
    2. 右键点击创建的快捷方式 > 属性 > 目标,将路径用英文引号括起来,然后在后面加上/Register,如将 E:\STATA\Stata15\StataMP-64.exe 改成 "E:\STATA\Stata15\StataMP-64.exe" /Register。改完后点击确定,再打开时目标路径上的引号消失,表示成功。 注意:在 Register 前面是一道斜杠,而且斜杠之前还有一个空格。
    3. 右键点击快捷方式,“以管理员身份运行”一次即可

    在执行此操作时,将Stata可执行文件的路径添加到设置中的 Stata path 选项中。

  3. 重启 VS Code 即可 (I hope...).

5. 主要参考资料

方法一的配置过程:

我主要参考 2020 年 4 月最新的 这篇博文,这位博主还提供了 Rundolines 与 Rundo 百度网盘下载链接(感谢这位博主!)。这两份文件的原始下载地址在 hueble的博客(可能会打不开)。

  • 下载链接:https://pan.baidu.com/s/1GfEcO1n0GvDYeiyCXlQ6Hg
  • 提取码:w0zh

如果还有问题不能解决就看下前两年的这两篇文章:如何在VS Code 中编辑和调试Stata程序来篇干货:使用VS Code当作Stata编辑器

方法二的配置过程: 主要是 runStata 插件的具体配置步骤的翻译,可以看看该插件的原始说明。如果已经用 stata-exec 方法配置过 Atom,应该用第二种方法会比较方便。

   

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
Stata暑期班 连玉君
江艇
线上直播 9 天
2020.7.28-8.7
效率分析-专题 连玉君
鲁晓东
张 宁
视频-TFP-SFA-DEA
已上线,3天
文本分析/爬虫 游万海
司继春
视频-文本分析与爬虫
已上线,4天
空间计量系列 范巧 空间全局模型, 空间权重矩阵
空间动态面板, 空间DID
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:
    • 课程, 直播, 视频, 客服, 模型设定, 研究设计, 暑期班
    • stata, plus,Profile, 手册, SJ, 外部命令, profile, mata, 绘图, 编程, 数据, 可视化
    • DID,RDD, PSM,IV,DID, DDD, 合成控制法,内生性, 事件研究, 交乘, 平方项, 缺失值, 离群值, 缩尾, R2, 乱码, 结果
    • Probit, Logit, tobit, MLE, GMM, DEA, Bootstrap, bs, MC, TFP, 面板, 直击面板数据, 动态面板, VAR, 生存分析, 分位数
    • 空间, 空间计量, 连老师, 直播, 爬虫, 文本, 正则, python
    • Markdown, Markdown幻灯片, marp, 工具, 软件, Sai2, gInk, Annotator, 手写批注, 盈余管理, 特斯拉, 甲壳虫, 论文重现, 易懂教程, 码云, 教程, 知乎

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……


扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD