其他
追踪命令set trace on——解你燃眉之急
本文作者:李钊颖
文字编辑:李婷婷
技术总编:余术玲
爬虫俱乐部云端课程来袭!
另外,爬虫俱乐部于2020年7月在线上举办的Stata与Python编程技术训练营已圆满结束。应广大学员需求,我们的课程现已在腾讯课堂双双上线,且继续提供答疑服务。现在关注公众号并在朋友圈转发推文《来腾讯课堂学Stata和Python啦!》,即可获得600元课程优惠券,集赞50个再领200元课程优惠劵!(截图发至本公众号后台领取)原价2400元的课程,现在只要1600元!
导读
1. 展示程序运行过程
clear all
sysuse auto.dta
reg length price-weight
set trace on
reg length price-weight
2. 精准锁定出错程序
clear
set obs 50
gen x1 = runiform()
gen x2 = rnormal(0,5)
gen x3 = uniform()
gen x4 = uniform()*10
gen y = x1 + x2 + x3 + x4
local i 1
while `i'<= 2{
replace y = y + x`i'
local i = `i' + 1
if `i'> 2{
replace y = x`i' + `1'
}
}
clear
set obs 50
gen x1 = runiform()
gen x2 = rnormal(0,5)
gen x3 = uniform()
gen x4 = uniform()*10
gen y = x1 + x2 + x3 + x4
local i 1
set trace on
while `i'<= 2{
replace y = y + x`i'
local i = `i' + 1
if `i'> 2{
replace y = x`i' + `1'
}
}
从上图中可以看出此时Stata输出了详细的计算过程和错误出现的具体位置,本案例中报错是因为混淆了“i”和“1”,这是一个很常见的错误。在刚接触Stata时,这个功能能帮助新手快速找到出错程序,十分方便确定命令出错的具体原因,也很适合复杂嵌套的程序debug。不使用此功能时,可以选择关闭此功能,只需要运行set trace off即可。
当我们修改我们的程序时,应确保drop _all现有程序,以便Stata可以重新读取我们的程序文件并实现我们所做的任何更改。如果我们的程序很长,或者跟踪命令会有很多输出,我们可以使用log命令记录输出,方便我们之后查看结果日志文件。下面给出使用这个命令的通用做法:
log using junk, replace
prog drop _all
set trace on
*run your program again //把需要跟踪的程序放这里
log close
set trace off
爬虫大杀器 | “手把手”教你配置Selenium
小白必看!Anaconda安装全攻略
用WordStat看中国日报新闻(二)
一招轻松合并文件——openall命令介绍
高校经管类核心期刊发文排行榜|2010-2019
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。