r - RMarkdown:当 collectcode=TRUE 时,Statamarkdown 会产生不需要的输出
问题描述
我正在使用和 StataStatamarkdown
生成 HTML 文档。RMarkdown
如此处所述,每个代码块都作为单独的 Stata 会话执行。collectcode=TRUE
是跨块收集 Stata 代码的块选项。
虽然这很好地工作,但在第一个块之后的第二个(以及任何其他)块的输出collectcode=TRUE
在顶部包含一个不需要的回声:
运行.......\profile.do
例如,当运行第二个块时{stata stata2, echo = T,collectcode=TRUE}
reg mpg price i.foreign , noheader
产生这个输出:
reg mpg price i.foreign , noheader
Running C:\Cloud\Methods\prog\profile.do . reg mpg price i.foreign , noheader
------------------------------------------------------------------------------
mpg | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
price | -.000959 .0001815 -5.28 0.000 -.001321 -.000597
|
foreign |
Foreign | 5.245271 1.163592 4.51 0.000 2.925135 7.565407
_cons | 25.65058 1.271581 20.17 0.000 23.11512 28.18605
------------------------------------------------------------------------------
这是我的 RMarkdown 代表:
---
title: "Statamarkdown output problem"
output: html_document
---
```{r setup, include = F}
library(Statamarkdown)
```
First chunk is clean:
```{stata stata1,collectcode=TRUE}
sysuse auto
su mpg price
```
Second Stata Output contains undesired `Running .......\profile.do` output:
```{stata stata2, echo = T,collectcode=TRUE}
reg mpg price i.foreign , noheader
```
Problem persists even in chunks with `collectcode=FALSE`:
```{stata new_data, echo = T,collectcode=F}
webuse bpwide, clear
su sex agegrp
```
`cleanlog = F` does not do the trick:
```{stata new_data2, echo = T,collectcode=F, cleanlog = FALSE}
webuse bpwide, clear
su sex agegrp
```
完全避免collectcode=T
,即为每个块加载和准备数据当然是一种解决方法,但非常乏味。
我在 Windows 机器上使用 R 3.6.3 和 Stata 16.1。
Any ideas are very much appreciated!
解决方案
It turns out Stata changed from
running .......\profile.do
to
Running .......\profile.do
A new version of the Statamarkdown package (0.5.0) accomodates this, now.