在Markdown中切换R和Stata

时间:2017-02-09 11:34:43

标签: r markdown stata r-markdown

通过在脚本中指定以下内容,可以在Rstudio中使用markdown生成Stata输出:

```{r}
statapath <- "C:/Program Files (x86)/Stata13/StataSE-64.exe"
opts_chunk$set(engine="stata", engine.path=statapath, comment="")
```

之后,可以使用Stata语法生成输出。

是否可以为某些代码块切换回R,然后再切换回Stata?

原因是我使用Stata进行回归(表格),但是对于我做的其他大部分事情都使用R.所以像这样的功能对我来说会派上用场。

我试过了:

```{r}
rpath <- "C:/Program Files/RStudio/bin/rstudio.exe"
opts_chunk$set(engine="R", engine.path=rpath, comment="")
```

它不起作用。

4 个答案:

答案 0 :(得分:7)

我非常怀疑目前这是可能的。

我最近不得不使用Stata进行一些分析,并通过使用带有参数并使用system()调用它来运行脚本的Do文件来实现。脚本本身生成回归模型的结果(确切地说是xtnbreg),然后使用do文件中的parmest将这些结果整理到一个文件中(保存为Stata文件)。然后将带有parmest输出的结果Stata文件读入R并使用R的本机标记渲染进行打印。

除非你想深入研究为RMarkdown / Pandoc添加功能,否则我建议考虑这个。

答案 1 :(得分:1)

您可能对此很感兴趣

Stata和R Markdown(Windows)https://www.ssc.wisc.edu/~hemken/Stataworkshops/Stata%20and%20R%20Markdown/StataMarkdown.html

它使用df<-mutate(.data = df, DateColumn= as.Date(DateColumn, "%m/%d/%Y")) ,它将创建不同的```{stata}块。因此,您应该能够运行Stata和运行R块。

我假设您必须导出和导入才能在不同块之间共享对象(尚未尝试过)。

Python https://cran.r-project.org/web/packages/reticulate/vignettes/r_markdown.html也存在类似的情况-这里的对象可以在R和Python之间共享(非常酷!)

答案 2 :(得分:0)

您可以尝试相反的方式,而不是使用R来调用Stata。

使用markdoc留在Stata,并使用Rcall致电R.

答案 3 :(得分:0)

如果您只是跳过R代码块中的engine.path,它应该可以工作。您可以轻松地在语言之间切换。