Stata:如果我以交互方式使用保留,是否可以在ado文件中再次使用(嵌套)?

时间:2018-03-16 03:56:30

标签: stata

我知道preserverestore可以在对其进行更改后恢复内存中数据集的先前状态,并且一次只允许一个preserve 。要同时在内存中保留第二个(不同的)数据版本,我需要将数据集保存到磁盘。

但是,如果我以交互方式使用preserve,然后调用我编写的使用preserverestore的.ado文件怎么办?这种“嵌套”使用还原能否正常工作?

1 个答案:

答案 0 :(得分:0)

ado文件中使用的保留与交互使用的任何保留分开。以这种“嵌套”方式使用它们不是问题。

一个简单的测试证明了这一点。首先,在preserverestore对内的.ado文件会删除前10个观察结果,并在count之前restore记录更改。< / p>

testrestore.ado

capture program drop testrestore
program testrestore
   disp "start testrestore"
   preserve
   drop in 1/10
   count
   restore
   disp "end testrestore"
end

然后交互式命令与ado文件做同样的事情,但在交互式restore之前调用ado文件

sysuse auto, clear
count
preserve
drop in 1/10
count
testrestore
count
restore
count

输出

enter image description here

观察次数从74下降到64到54,然后再增加到64和74。