输出比结果窗口可以记住的更广泛,因此日志捕获忘记记录

问题描述

我有一个广泛的 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-文件

解决方法

我不遵循帖子标题或正文中的断言。

  1. 代码“忘记”做任何事情是没有意义的。似乎是您,程序员,忘记在您现在意识到需要它们的地方包含 log 命令。这也可能发生在任何有经验的程序员身上。

  2. 日志文件中的内容与“结果”窗口中随时可见的内容无关。日志文件的大小不受限制,取决于您的计算机内存。

如果您无法追溯复制和粘贴结果,那么唯一的解决方法是修复您的 do-file 代码并再次运行它。

我认为您的问题背后是对 capture 的口头误解。 capture 作为 Stata 命令,如果以下命令失败,则会出现错误。也就是说,capture 确保 Stata 继续运行,否则它会因错误消息而停止。它与捕获(在捕获和记录的意义上)您的输出无关。

拼写是 Stata,而不是 STATA,大约从 1985 年开始。