do-file都去哪了

2017-03-01 薛原 爬虫俱乐部 爬虫俱乐部

在我们使用Stata的do-file editor编写程序的时候,有时会出现一些不确定性因素,比如电脑系统突然崩溃了、蓝屏了。如果这个时候你恰好花了一下午时间写好了do-file而又恰好没有保存,呃……


anx

A

ious

其 实不光电脑系统会崩溃,Stata有时候也会崩溃。比如在我们的培训中讲正则表达式元字符部分的时候,就讲到了一种错误,会直接导致Stata崩溃。例如 数量元字符中{m,n},如果我们在逗号后面加入一个空格,写成{m, n}这样的形式,Stata就会崩溃。例如我们在Stata14中输入下面这个命令:

clear

set obs 1

gen v1 = ustrregexs(0) if ustrregexm("123", "\d{1,3}")

list

这个时候我们可以正确地匹配并提取出字符串123,但是如果我们在逗号和3中间加入空格,将正则表达式写成"\d{1, 3}":

gen v2 = ustrregexs(0) if ustrregexm("123", "\d{1, 3}")

最 终就只能够关闭Stata了。如果你没有写程序时经常保存do-file的习惯,那么这就可能导致你一下午时间写出来的程序全部丢失了。而Stata又不 像office软件这样能帮我们备份,当出现非正常退出时可以帮我们恢复到上一次自动备份的情形。那么我们遇到这种情况时该如何找回我们丢失的do- file呢?

一般来说我们写程序 都是边写便运行,当然不排除你可以看一遍原始数据,然后凭借你强大到足以参加最强大脑的工作记忆能力在脑海中完整地形成了一套程序,然后默写到do- file中,如果你有这样的能力,当然也就不需要这样的方法了。我们每一次运行do-file,都会生成一个临时文件。例如我们之前运行正常的do- file,生成的临时文件所在的路径和文件的名称都可以在输出结果中看到。

然后我们在do-file里面加入会导致Stata崩溃的那条命令,重新完整运行后使Stata关闭,到这个路径下去找这个临时文件,用记事本打开。

我 们在Stata崩溃前最后一次运行do-file时运行过的命令就都在里面了。当然,这个方法最大的弊端就是如果你习惯写一部分运行一部分,而不是从头开 始运行的话,最后这个临时文件里打开所得到的也只有你最后一次运行的那一部分程序。例如我们刚才假如加上导致Stata崩溃的命令后,只运行这一条命令, 这个临时文件中最后也就只记录下了这么一条命令。

那 么还有什么办法能够更好解决这个问题吗?熟悉Python的朋友都知道,在我们使用IDLE来编辑Python程序时,每次运行都会提示我们先保存才能运 行,那么Stata中有没有什么能够让我们在每次运行程序时都把do-file保存呢?在Stata14的do-file editor里面,我们选着edit——preferences,在do-file editor preferences的窗口中的Advance框内有一个选项Always save before do/run,可以让我们在每次运行do-file时自动保存。

在这个选项前勾上对勾,然后我们把刚才的程序拿来再运行,如果这个do-file没有保存过,那么会弹出一个窗口让我们保存这个do-file,例如我们保存在D盘stata14文件夹下面,命名为崩溃.do。

这样即使Stata崩溃了,关闭了,我们也可以在这个文件夹中找到这个do-file。

如 果我们对已经存在的do-file进行修改,然后运行的时候是不会弹出让我们保存的对话框的,而是直接覆盖了已经存在的do-file。有了这个办法,即 使我们没有随时保存do-file的习惯,也可以尽可能的防止我们费了很多工夫写好的程序因为崩溃而丢失了。但这个功能应该属于Stata14新添加的功 能,笔者在Stata13中并没有找到这个功能的选项。



接下来是空气质量报告

全国空气质量如下

山东的朋友请注意


以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~,点赞打赏随您心意,么么哒~

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

文字编辑:司海涛

技术总编:刘贝贝



往期推文推荐:

1.合并输出回归结果和其他检验结果——esttab和estadd

2.关于RTF你不知道的命令

3.关于RTF你不知道的命令之番外篇

4.免费事件研究,一片片从邮局寄来

5.免费的股价同步性,一片片从邮局寄来

6.Stata叫你回家听音乐了!

7.一言不合就用stata写邮件(Outlook/Foxmail)

8.玩转stata之调用浏览器

9.I have a Stata, I have a python

10.I have a Stata, I have a Python之二——pdf转word




关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:xueyuan19920310@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


欢迎关注爬虫俱乐部


微信扫一扫
关注该公众号