我想删除或删除 .do 文件中临时文件的内容,以节省内存。我知道该文件应该在 .do 文件完成后被清除,但我想知道我是否可以在不再需要它后中途删除内容。
我想到的就是打开文件。删除所有观察结果(我先验知道文件大小的上限)。然后进行保存替换以减小文件的大小。虽然这有效,但我怀疑它是最有效的解决方案,因为它需要打开一个可能很大的文件,大致了解文件的大小,并且文件继续存在,尽管数量很少。
这是我生成的用于删除临时文件的代码:
tempfile temp1 temp2
/* LOTS OF CODE HERE */
clear
set mem 1197m
foreach X in temp1 temp2 {
clear
set mem 1197m
use "``X''"
drop if _n <= 20000000
save "``X''", replace
}
最佳答案
如果您确实需要删除临时文件,只需使用erase
即可。 erase
是Stata跨平台删除文件的命令。当然,Stata 会与任何操作系统进行对话来执行此操作。
您的代码假设临时文件将是 Stata .dta
文件,而不是 Stata 所做的假设。但这是一个细节:你不需要任何如此奇怪或迂回的东西。
关于stata - 删除临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17326100/