首页 > 解决方案 > 输出比结果窗口可以记住的更广泛,因此日志捕获忘记记录

问题描述

我有一个扩展的 Stata do 文件,运行时没有问题,但是输出太多,无法在结果窗口中全部捕获。我阅读了日志文件以创建输出的捕获,这很有效。这是我在 do-file 开头的代码:


______________________________________________*/
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 文件成功运行,直到我有 a 的结尾,log close然后在结果窗口中获取输出:

. 
. log close
no log file open
r(606);

end of do-file

r(606);

当我查看日志 txt 文件时,它只捕获少量的 do 文件(我假设结果窗口的内存中可以容纳的内容)。我想知道如何解决这个问题:是否就像在我的 do-file 中间添加一堆日志附加来捕获所有内容一样简单,或者是否有一个不同的命令可以确保它在整个 do-文件?

标签: stata

解决方案


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

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

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

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

我认为您的问题的基础是对capture. capture作为Stata命令,如果以下命令失败,则会出现错误。也就是说,capture确保 Stata 继续运行,否则它将停止并显示错误消息。它与捕捉和记录你的输出无关。

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


推荐阅读