我有一个do
- 文件,用于清理Stata数据集并生成描述性统计信息。此文件中的第一个命令是preserve
,而最后一个命令是restore
。
do
- 文件太长而无法在此处附加,但在这两个命令之间,还有其他命令,例如generate
,replace
,tabulate
和{{1 }}
问题是有时我会收到以下错误消息:
无需恢复
有谁知道可能出错了什么?
答案 0 :(得分:2)
当您尝试运行某些代码行时,问题就出现了
您的do
文件分块,而不是一次运行整个do
文件。
为了说明确实如此,请考虑以下玩具示例:
sysuse auto, clear
preserve
keep price mpg weight foreign
regress price mpg weight foreign
restore
如果您从上面的代码段中选择前三行并按“执行”
在do
- 文件编辑器中,Stata将成功地执行这些操作然后将执行
自动恢复数据集。
(要看到这一点,只需在上面的示例中注释preserve
。在这种情况下,运行所选代码完成后的数据集将只包含指定的四个变量。)
现在,如果您尝试运行其余代码,Stata会抱怨:
. restore
nothing to restore
r(622);
之所以这样,是因为Stata已经恢复了数据集。