在 Markdown 中切换 R 和 Stata

Switch between R and Stata in 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="")
```

没用。

目前我很怀疑这是可能的。

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

我建议考虑这一点,除非您想深入研究向 RMarkdown/Pandoc 添加功能。

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

留在 Stata 中 markdoc and use Rcall 调用 R.

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

您可能对此感兴趣

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

它使用 library(Statamarkdown),这将创建不同的 ```{stata} 块。所以你应该能够 运行 Stata 和 运行 R 块。

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

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