问题描述
我有一个广泛的 Stata do 文件,可以正常运行,但输出太多,无法在结果窗口中全部捕获。我阅读了日志文件以创建输出的捕获,这是有效的。这是我在 do 文件开头的代码:
______________________________________________*/
capture log close
clear
*------------------------------------------------------------------------------------------------------------------
*SET THIS TO USE THE CORRECT DIRECTORY
local thisdir "C:\Users\my computer file"
*------------------------------------------------------------------------------------------------------------------
cd "`thisdir'"
log using "STATAlogfile.txt",text append
do 文件然后成功运行,直到我有 log close
的最后,然后在结果窗口中获得输出:
.
. log close
no log file open
r(606);
end of do-file
r(606);
当我查看 log txt 文件时,它只捕获了少量的 do 文件(我假设尽可能适合结果窗口的内存)。 我想知道如何解决这个问题:它是否像在我的 do-file 中间粘贴一堆日志附加来捕获所有内容一样简单,还是有一个不同的命令可以确保它在整个 do-文件?
解决方法
我不遵循帖子标题或正文中的断言。
-
代码“忘记”做任何事情是没有意义的。似乎是您,程序员,忘记在您现在意识到需要它们的地方包含
log
命令。这也可能发生在任何有经验的程序员身上。 -
日志文件中的内容与“结果”窗口中随时可见的内容无关。日志文件的大小不受限制,取决于您的计算机内存。
如果您无法追溯复制和粘贴结果,那么唯一的解决方法是修复您的 do-file 代码并再次运行它。
我认为您的问题背后是对 capture
的口头误解。 capture
作为 Stata 命令,如果以下命令失败,则会出现错误。也就是说,capture
确保 Stata 继续运行,否则它会因错误消息而停止。它与捕获(在捕获和记录的意义上)您的输出无关。
拼写是 Stata,而不是 STATA,大约从 1985 年开始。