Stata:可重复研究中的版本控制问题-require命令

阅读全文:Stata:可重复研究中的版本控制问题-require命令

作者: 李原 (厦门大学)
邮箱:liyuan_i@163.com

1. 引言

期刊发表公开代码已成为大势所趋。此前,连享会已经发布了一系列有关论文复现的推文:

然而,当我们根据作者所提供的 do 文件在 Stata 中进行可重复研究时,可能面临外部命令版本不一致的问题,导致结果无法复现。这一问题也存在于不同电脑设备间的转换以及合作者间的共享交流过程中。Python (requirements) 和 R (packrat) 等语言均有管理程序包依赖关系的工具。而在 Stata 中,使用 ssc install 安装外部命令时,往往仅能一步到位地安装最新版本。

那么,有没有一个命令在 Stata 中实现外部命令的版本控制呢?本文介绍的 rquire 命令就可以实现这一目标。

2. require 命令

2.1 基本功能

require 命令可以管理 Stata 包依赖关系,用于 do-files 和 ado-files 文件中。给定 Stata 软件包列表,require 能够 验证系统中安装的每个命令包是否符合最低或确切的版本要求,并进行可选安装。这样一来,文件的使用方在运行特定外部命令时,能够确保命令版本的一致,从而保障了研究结果的可重现性。

该命令分三步执行:

  • 首先,查找与包关联的主要 ado 文件。
  • 其次,扫描 ado 文件寻找所谓的 “星行” ,即通常在文件开头以字符 *! 标注的代码,通常包含命令名称、版本、发布日期和作者。
  • 最后,基于一组正则表达式从星行中提取包的版本和发布日期,验证是否满足要求。

2.2 基本语法

*命令安装
ssc install require

安装好命令之后,输入 help require,查看相应的帮助文档:

* 基本语法
  require package [, main options]
  require package [ == | >=] version [, main options]

* 为了避免输入许多 `require...` 命令行,
* 我们可以把需要验证的命令写入一个名为 "requirements.txt" 
* 的文件中,再统一读取执行
  require using filename [, main options] 

* list 帮助创建一个基于当前安装包的 "requirements.txt" 文件
  require [using filename] [, list options]

主要选项 (options):

  • install:安装命令包
  • from (location):安装来源,可以为 URL、字典或 SSC (默认)
  • adopath(dirname):安装路径

注意,由于 SSC 只存储每个包的最新版本,因此无法从 SSC 安装旧版本命令。有两种可能的解决方法:

列表选项 (list):

  • adopath(dirname):包含已安装包的路径
  • save:相当于 "require using requirements.txt..."
  • replace:替换 "using" 文件
  • exact:列出精确版本 (==) 而不是最低版本 (>=)
  • stata:添加一行 Stata 安装版本的要求

阅读全文: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值