Starting with version 2.1, `markstat`

lets you combine Stata, Mata and R
code blocks and inline code. Here is a simple example regarding the
calculation of quantiles.

`qsr.stmd`

% Quantiles in Stata and R Stata and R compute percentiles differently. Let us load the `auto` dataset and compute the 75th percentile of `price` using Stata's `centile` ```s sysuse auto, clear centile price, centile(75) save auto, replace ``` We find that the 75-th percentile is `s r(c_1)`. Now let us do the same with R. We'll use the `haven` library to read a Stata file ```r library(haven) auto <- read_dta("auto.dta") q <- quantile(auto$price, 0.75); q ``` According to R, the 75-th percentile is `r round(q, 1)`. Turns out R has 9 types of quantiles, the default is 7. To get the same result as `centile` specify type 6, which gives `r quantile(auto$price, 0.75, type=6)`. The Stata commands `summarize, detail`, `xtile`, `pctile` and `_pctile` use yet another method, equivalent to R's type 2. These give the third quartile as `r quantile(auto$price, 0.75, type=2)`. The last three commands have an `altdef` option that gives the same answer as `centile`. For a discussion of these methods see Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in statistical packages, *American Statistician* 50:361-365.

As you can see, we handle R code the same way as Stata and Mata, using
code fences but with an `r`

instead of an `s`

or `m`

. You can copy and
paste this script, or download it to your working directory using the
command

```
copy https://grodri.github.io/markstat/qsr.stmd .
```

To run this script in Stata you use the command

```
markstat using qsr
```

The script uses the `strict`

syntax, but `markstat`

2.1 and higher
detects the use of code fences and sets `strict`

mode automatically.
(The `strict`

option remains available for rare cases where
autodetection will not work, such as files with indented Markdown but no
Stata, Mata or R code.)

You can see the html output here.

For this to work you need to have R installed, and you need to use
`whereis`

from SSC to register the location of R in your computer. I
recommend you first update `whereis`

to make sure you have the latest
version. Then follow the R instructions on Getting
Started, which has registration examples for Windows
10 and Mac OS X.

This particular script also requires R’s `haven`

package to read Stata
files. Stas Kolenikov pointed out that you could modify the script to
install the package on demand, replacing `library(haven)`

with

```
tryCatch(library("haven"),
error = function(e) install.packages("haven", repos="https://cloud.r-project.org"),
finally = library("haven"))
```

For a more extensive example, see this page, which uses Bootstrap tabs to switch between Stata and R in a Cox regression.

Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in statistical
packages, *American Statistician* 50:361-365.

New in markstat 2.1