概述
编译: 安贤娟(北京信息科技大学)
「Source:Running sections of do-files.」
Stata连享会 主页 || 视频 || 推文
NEW!连享会·推文专辑:
Stata资源 | 数据处理 | Stata绘图 | Stata程序
结果输出 | 回归分析 | 时间序列 | 面板数据 | 离散数据
交乘调节 | DID | RDD | 因果推断 | SFA-TFP-DEA
文本分析+爬虫 | 空间计量 | 学术论文 | 软件工具
五一节,跟大家分享一个小玩意,希望各位能在轻松愉快的心情下掌握这个在 dofile 中执行命令的小技巧。
有关 dofile 的设定、语法高亮,以及 Profile 设定等先导内容,请按需点击如下链接之一:
- 连享会公众号-Stata 资源专题 (公众号读者)
- 知乎推文列表:Stata基础专题 (知乎用户)
- 连享会主页:Stata教程专题 (网页版)
连享会 - 效率分析专题,2020年5月29-31日
主讲嘉宾:连玉君 | 鲁晓东 | 张宁
详情,微信版,PDF版
连享会直播 - 生存分析 (Survival Analysis) 专题
主讲嘉宾:王存同教授 (中央财经大学)
2020年6月6日,详情
运行 do-file 的一部分
如今 do-files 越来越大、越来越复杂,而有时只是想运行 do 文档中的一部分代码。
为了达到这个目的,我们可以使用 do-switches 模式,简言之,就是在 do 文档开头部分设置几个开关 (取值 0 或 1),进而通过「打开」或「关闭」这些开关来控制哪些代码被执行。
1. 问题
我们都经历过这样一个过程:
1. 错误!r(xxx)
然后——
1. 修正一小部分代码
2. 在大段的 do-file 中选择一段代码并运行它
(重复上述步骤)
2. 进入 do-switch
思路
非常简单: 如果您想运行代码的某个部分,只需将该部分对应的 local 设置为 1(否则设置为 0 或其他值)。然后,用条件块将要打开或关闭的代码段括起来。
如果你只处理 B 部分,那么你可以将除 B 之外的所有开关设置为 0,然后运行整个 do-file,而无需手动选择其中的一部分。
显然,在第一次进行上述设定时略显繁琐,但后续执行过程会变得很快捷。
*-这三行是用来定义「开关」的
local A 0 // 第 1 个开关
local B 0 // 第 2 个开关
local merge 0 // 第 3 个开关
*-Note: 以下是代码主体
if `A' == 1 {
* Import and save A
}
if `B' == 1 {
* Import and save B
}
if `merge' == 1 {
* Merge A with B and save
}
3. 实例展示
在这个简单的例子中,只选择处理导入的 A ,将其设置为 1,B 和 marge 开关设置为 0,然后运行全部的 do-file。
sysuse "nlsw88.dta"
global y "wage"
global x "hours tenure married collgrad"
local A 1
local B 0
local merge 0
if `A' == 1 {
reg $y $x
}
if `B' == 1 {
reg $y $x i.race i.industry
}
if `merge' == 1 {
reg $y $x
reg $y $x i.race i.industry
}
运行结果展示
结果中只显示了打开开关的 A 部分,而 B 和 merge 部分均没有显示。
if `A' == 1 {
. reg $y $x
Source | SS df MS Number of obs = 2,227
-------------+---------------------------------- F(4, 2222) = 67.82
Model | 8053.67746 4 2013.41937 Prob > F = 0.0000
Residual | 65967.1331 2,222 29.6881787 R-squared = 0.1088
-------------+---------------------------------- Adj R-squared = 0.1072
Total | 74020.8106 2,226 33.2528349 Root MSE = 5.4487
------------------------------------------------------------------------------
wage | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
hours | .0616148 .0113148 5.45 0.000 .0394262 .0838034
tenure | .1439428 .0212953 6.76 0.000 .102182 .1857037
married | -.273562 .2436884 -1.12 0.262 -.7514427 .2043187
collgrad | 3.330943 .2730949 12.20 0.000 2.795395 3.866491
_cons | 4.029129 .4833735 8.34 0.000 3.081218 4.97704
------------------------------------------------------------------------------
. }
. if `B' == 1 {
. reg $y $x i.race i.industry
. }
. if `merge' == 1 {
. reg $y $x
. reg $y $x i.race i.industry
. }
连享会 - 文本分析与爬虫 - 专题视频
主讲嘉宾:司继春 || 游万海
关于我们
- Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
- 你的颈椎还好吗? 您将 ::连享会-主页:: 和 ::连享会-知乎专栏:: 收藏起来,以便随时在电脑上查看往期推文。
- 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然: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, 手写批注
盈余管理, 特斯拉, 甲壳虫, 论文重现
易懂教程, 码云, 教程, 知乎
扫码加入连享会微信群,提问交流更方便
最后
以上就是腼腆火龙果为你收集整理的Stata:给你的dofile加个开关的全部内容,希望文章能够帮你解决Stata:给你的dofile加个开关所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复