Stata 如何在内存中保存估计值并批量写入文件
为了加快代码的速度,我想将每10次回归的结果导出到一个文件中。是否可以执行以下操作Stata 如何在内存中保存估计值并批量写入文件,stata,stata-macros,Stata,Stata Macros,为了加快代码的速度,我想将每10次回归的结果导出到一个文件中。是否可以执行以下操作 forvalues i = 1(1)20{ ppmlhdfe y ${varlist`i'}, absorb(year) cluster(year) estimates store result`i' if mod(`i', 10) == 0 { outreg2 result* using "$outputdir1\results.csv" est clear } } 在这
forvalues i = 1(1)20{
ppmlhdfe y ${varlist`i'}, absorb(year) cluster(year)
estimates store result`i'
if mod(`i', 10) == 0 {
outreg2 result* using "$outputdir1\results.csv"
est clear
}
}
在这个伪代码中,我的意思是我们每10次回归保存一次结果,并清除内存中的估计值,然后继续下一次10次回归。在Stata中有可能吗?您当然可以根据循环索引做一些事情,如
if mod(`i', 10) == 0 {
}
我不确定我是否理解其余大部分代码outreg2
被要求将内容放在完全相同的文件中;我不使用outreg2
,也不知道那里有什么意义。类似地,从表面上看,您是在获得估算之前存储估算值
这里真正的节约是什么?如果你不想看到结果,为什么要执行回归呢?非常感谢你的评论,尼克!我发现为每个回归编写结果会拖慢代码。所以我试着保存估计值,每10次回归写一次。这样,我们就避免了访问硬盘太频繁。顺便说一句,我根据你的评论清理了一点伪代码。再说一遍,我真的不明白。每组结果有多大?为什么不在循环后写一次呢?如果我们导出到csv文件,每组结果就是一列。我对代码计时,回归需要15秒才能完成,但写入硬盘上的文件需要30秒。所以我试图减少写入文件的次数。