我有一个do
,我用它来清理一个Stata的数据集,并生成描述性统计-file。 在此文件中的第一个命令是preserve
,而最后一个是restore
。
该do
-file太长,这里附上但是这两个命令之间,还有其他如generate
, replace
, tabulate
和collapse
。
问题是,有时我得到以下错误信息:
没有恢复
有谁知道什么可能是错了吗?
我有一个do
,我用它来清理一个Stata的数据集,并生成描述性统计-file。 在此文件中的第一个命令是preserve
,而最后一个是restore
。
该do
-file太长,这里附上但是这两个命令之间,还有其他如generate
, replace
, tabulate
和collapse
。
问题是,有时我得到以下错误信息:
没有恢复
有谁知道什么可能是错了吗?
这个问题提出了自己,当你试图在运行某些代码行do
的块文件,而不是运行整个do
一气呵成文件。
为了说明这确实是这样,考虑下面的玩具例子:
sysuse auto, clear
preserve
keep price mpg weight foreign
regress price mpg weight foreign
restore
如果选择从上面的代码片断,然后按前三行“执行”,在do
-file编辑器,塔塔将成功地携带这些出来,然后会自动恢复数据集。
(看到这一点,只是注释掉preserve
在上面的例子。在这种情况下,指定的四个变量运行所选择的代码完成后,该数据集将只包含)。
现在,如果你尝试运行该代码的其余部分,塔塔会抱怨:
. restore
nothing to restore
r(622);
这样做的原因是因为塔塔已经恢复了数据集。