2013-03-26 85 views
4
. sysuse auto, clear 
(1978 Automobile Data) 

. di "I am getting some summary statistics for PRICE" 
I am getting some summary statistics for PRICE 

. su price 

    Variable |  Obs  Mean Std. Dev.  Min  Max 
-------------+-------------------------------------------------------- 
     price |  74 6165.257 2949.496  3291  15906 

. 
end of do-file 

我想隐藏的命令行,并且只显示结果如下:塔塔:隐藏命令行

I am getting some summary statistics for PRICE 

     Variable |  Obs  Mean Std. Dev.  Min  Max 
    -------------+-------------------------------------------------------- 
      price |  74 6165.257 2949.496  3291  15906 

我怎样才能做到这一点?谢谢。

回答

5

试试这个:输出文本文件(quiet_noise.txt)会有你想要的。

quietly { 
    log using quiet_noise.log, text replace 
    sysuse auto 
    noisily: di "I am getting some summary statistics for PRICE" 
    noisily: su price 
    log close 
} 
+2

另一种选择是,如果你愿意尝试一些更有趣的东西,就是去[do-files]的“knitr”方法(https:// github。com/amarder/stata-tutorial),它将Markdown格式的文本与Stata代码混合在一起。 – 2013-03-27 13:43:11

9

从user1493368的答案是正确的,但这样写代码是繁琐且容易出错的更复杂的例子。另一个答案就是学习如何编写Stata程序!将这个在做文件编辑器窗口,并运行它

program myprog 
    qui sysuse auto, clear 
    di "I am getting some summary statistics for PRICE" 
    su price 
end 

在实践中然后输入交互

myprog 

作为一个让很多小错误,一个非常第一线如

capture program drop myprog 

是一个好主意。

这确实是显着和有据可查的:从后面的章节开始[U]。

4

评论Stata的输出,特别是当你想分享你的日志文件成为一个问题,这很好地反映在你的问题。

正如Nick Cox很好地解释的那样,编写一个程序来显示文本是一个非常好的主意。但是,在程序中包含文本是有代价的,即不能将该程序与其他变量一起使用。例如,如果您编写了一个程序来运行给定变量的回归,那么如果您评论发现,则不能将该程序与其他变量一起使用。换句话说,撰写关于某个特定发现的评论将会使该程序变得不那么可用。因此,您最终会为每项分析编写一份程序,但这并不具吸引力。

那么我的建议是什么?使用MarkDoc pakcage来评论你的结果。

在MarkDoc(ssc install markdoc)中,您可以使用Markdown/HTML/LaTeX编写注释并将其导出到Stata中的动态文档。在您的示例中,它将如下所示:

qui log using example, replace 

    sysuse auto, clear 

    /*** 
    Writing comments in Stata logfiles 
    ================================== 

    I am getting some summary statistics for PRICE 
    ***/ 

    summarize price 

    qui log c 
    markdoc example, replace export(pdf) 

而MarkDoc将为您制作一个将您的评论解释为Markdown的PDF。除了PDF,您可以将同一个日志文件到其他格式,如DOCXHTMLTEX,开放式办公ODT幻灯片,也EPUB

使用Statax Syntax Highlighter,PDF和HTML格式也将为Stata命令提供语法高亮显示。

+0

程序不能用于其他变量的断言仅适用于根据特定变量进行连线的程序。否则这是无稽之谈:一个有效的书面程序不会对变量名称做任何假设。否则,Stata命令无法工作。 – 2014-09-10 20:11:16

+0

我只能同意你的评论。也许我还不够清楚。我指出了在程序中写评论的一个缺点,如果我们想在其他变量或不同场合反复使用该程序。在这种情况下,对特定发现发表评论会使该程序在其他场合无法使用。除此之外,写小问题也没有问题。 – 2014-09-10 21:33:53

+0

感谢您的澄清。我想我们基本达成一致。 – 2014-09-10 22:39:46