4

我非常喜欢 . R markdown,发现它比编织 LaTeX 更容易获得快速的项目文档(少于 15 页)。但是,有时我还必须支持其他统计包(SPSSStata+ SAS),并且想知道这些包的等效解决方案。

在某种程度上,这可能会回到使用某种原始Noweb代码 + markdown 文件在命令行上进行编译。我想从 R 调用其他包是另一种选择。

我看过 John Muschelli 的这个例子:http: //rpubs.com/muschellij2/3888 ,看起来好像他将 Stata 代码编入了 R markdown 文件。

有人可以提供如何在 Stata、SAS 或 SPSS 中完成此操作的具体示例吗?

我确实知道SASweaveand StatWeave(后者显然坏了???),但认为降价解决方案在我们的案例中会更有利。

4

4 回答 4

6

Stata 有自己的 SMCL 用于日志注释,M 代表标记。使用不同语言的主要原因是在看不到文档结尾的情况下,即在交互式会话中,必须逐行创建和解释 SMCL。当您提出要求时,Stata 会自动创建它作为注释,并且可以由用户或程序员规定,作为调整 Stata 显示选择的一种方式。

与您的问题的可能联系是 SMCL 可以翻译为 HTML,从而打开了各种大门。因此,在 Stata 中很容易做一些工作,log在 SMCL 中保存一个文件,然后将日志文件转换为 HTML。如果没有进一步的工作,你不会得到任何真正好的东西,但进一步的工作很容易,相当于做你会做的任何事情,但是在你最喜欢的文本编辑器或文本处理器中,而不是在 Stata 中。

Statalog2html用户可以使用ssc inst log2html. 它利用了 Stata 中未记录的功能。

Stata 的帮助文件也可以以相同的方式翻译成 HTML(但如果使用官方帮助文件,请考虑版权问题;使用您自己的帮助文件是公平的)。

于 2013-12-12T10:58:51.270 回答
4

John Muschelli 向我指出了这个 Stata 程序:

https://github.com/amarder/stata-tutorial/blob/master/knitr.do

它解析一个.domd包含 markdown 和 Stata 代码的.md文件,并生成一个包含已执行 Stata 代码的文件。要解析的文件的名称在文件的末尾knitr.do

更具体地说:

  1. 从https://github.com/amarder/stata-tutorial/blob/master/knitr.do下载knitr.do文件

  2. 从https://github.com/amarder/stata-tutorial/blob/master/clustered-standard-errors.domd下载clustered-standard-errors.domd文件

  3. 将它们都保存在某个目录中。

  4. 修改最后一行knitr.do以反映其目录的完整路径(例如 D:\Desktop\knit_example\clustered-standard-errors.domd

  5. 运行knitr.do以获取您的 markdown ( .md) 文件(和一个中间.md1文件)。

请注意,knitr.do其中包含执行工作的程序和一行(最后一行):

knit "whatever-file.domd"

调用程序。

所以你基本上写了一个.domd包含 Markdown 语法和 Stata 命令的文件[步骤(2)只是一个例子],运行knitr.do调整文件名,并得到一个带有执行 Stata 命令的 Markdown 文件。

有几个警告:

  • 只允许使用单行 Stata 命令。例如,循环将不起作用。
  • “.domd”不能是文件名的一部分。
  • 如果 Stata 命令有错误,用户不会得到返回码。
  • 如果用户在程序运行时点击Break按钮或出现 Stata 命令错误,则需要手动关闭文件句柄。
于 2013-12-13T18:05:11.717 回答
2

我不确定这是否是您想要的,但如果您希望在 SAS 中创建包含统计报告的 .html 文件,那么您可以使用输出交付系统 (ODS)。

示例语法是:

ods html file='pathofdirectory\filename.html' <additional options>;
    proc print...  (SAS code that generates output)
    proc means...
    proc freq...
    proc gchart...
    proc gplot...
    ...        
ods html close;
于 2013-12-12T10:20:44.433 回答
1

SPSS(和我认为的 SAS)需要将所有内容写入磁盘,这使得编译一举减少了吸引力,因此需要一些开销。与 Yick 提到的类似,SPSS 有一个输出系统,可以编写自动报告开始并导出为 HTML、PDF 或 Word。让它看起来不错并不是最容易的事情,但它是可能的,并且正在定期推出简化自动编辑(主要通过 Python 脚本)的附加功能。

基本上,我现在使用 SPSS 和 R 编写的自动化报告都有 html shell。然后,代码只需更新或插入所需的表格和图表。它们是完全独立的、可重复的,并且在每周或每月的计时器上运行,无需人工干预。他们只是没有内联代码块来准确定义表格的生成方式(您必须稍微追溯代码才能弄清楚 - 但这并不是太繁琐的 IMO)。

因为 SPSS 允许您从 Python 命令提示符运行 SPSS 代码,所以理论上您可以使用调用 SPSS 的 Python 代码编写文档。我不太确定我是否看到了与在单独的地方拥有更多分段代码相比的优势。您真的想阅读以 SQL 查询开头的 100 行 SPSS 代码,进行一些转换并生成表格和图形吗?难道你不想看表格和图表,然后如果对细节感兴趣,回去看看DataPrep.sps准备所有数据,然后看看Table1.sps等等Figure1.sps,看看它们是如何产生的?

于 2013-12-12T13:32:34.793 回答