其他统计包中的Markdown比R

时间:2013-12-12 09:08:02

标签: sas stata knitr spss r-markdown

我是R markdown的忠实粉丝,发现它比编织LaTeX快速项目文档(少于15页)更容易。但是,我还必须支持其他统计数据包(SPSSStata + SAS),并且想知道这些包的等效解决方案。

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

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

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

我知道SASweaveStatWeave(后者显然已被打破了???),但我认为降价解决方案在我们的案例中会更有利。

4 个答案:

答案 0 :(得分:6)

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

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

log2html Stata用户可以使用ssc inst log2html进行安装,从而更轻松。它利用了Stata中没有记录的功能。

Stata的帮助文件也可以以相同的方式转换为HTML(但如果使用官方帮助文件执行此操作,请考虑版权问题;使用您自己的帮助文件可以公平地发挥作用)。

答案 1 :(得分:4)

John Muschelli向我指出了这个Stata计划:

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

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

更具体:

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

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

  4. 下载clustered-standard-errors.domd文件
  5. 将它们保存在某个目录中。

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

  7. 运行knitr.do以获取降价(.md)文件(以及中间.md1文件)。

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

    knit "whatever-file.domd"
    

    调用该程序。

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

    有几点需要注意:

    • 只允许使用单行Stata命令。例如,循环将不起作用。
    • “。domd”不能成为文件名的一部分。
    • 如果Stata命令出错,则用户不会收到返回代码。
    • 如果用户在程序运行时遇到 Break 按钮或者存在Stata命令错误,则需要手动关闭文件句柄。

答案 2 :(得分: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;

答案 3 :(得分:1)

由于需要将所有内容写入磁盘,SPSS(以及我认为的SAS)有一些开销,这使得编译一举不那么吸引人。与Yick提到的类似,SPSS有一个输出系统,可以编写自动报告,然后导出到HTML或PDF或Word。让它看起来不是最简单的事情,但它是可能的,并且可以定期推出简化自动编辑(主要是通过Python脚本)的补充。

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

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