Немного про Markdown

Markdown – язык разметки (как HTML, только попроще). С его помощью можно красиво оформлять текст. Каким образом?

Можно выделять текст с помощью курсива: *курсива*.

Можно выделять текст с помощью полужирного начертания: **полужирного**.

Можно зачеркивать текст: <s>зачеркивать</s>

Можно вставлять код прямо текст, например, код для вывода строки на экран print("Welcome!").

Можно добавлять заголовки разных уровней. Так, такая исходная запись

# Заголовок 1
## Заголовок 2
### Заголовок 3

вернёт

Заголовок 1

Заголовок 2

Заголовок 3

Можно создавать нумерованные списки:

1. Во-первых, ...
2. Во-вторых, ...
  1. Во-первых, …
  2. Во-вторых, …

А можно и ненумерованные:

* пункт 1
* пункт 2
* пункт 3
  • пункт 1
  • пункт 2
  • пункт 3

Для тех, кто знаком с LaTeX, хорошие новости: можно добавлять формулы, используя тот же синтаксис, что и в LaTeX. Наличие установленного LaTeX на компьютере при этом не требуется. Такая запись

$y_i = \beta_0 + \beta_1 \cdot x_i + \varepsilon_i$

вернёт красивую формулу: \(y_i = \beta_0 + \beta_1 \cdot x_i + \varepsilon_i\)

Можно добавлять ссылки.

Так http://rmarkdown.rstudio.com/: <http://rmarkdown.rstudio.com/>

Или так R Markdown: [R Markdown](http://rmarkdown.rstudio.com/).

Кстати, пройдя по этой ссылке, можно узнать много интересного не только про Markdown сам по себе, но и про RMarkdown – особый формат файлов в R. Файл RMarkdown имеет расширение .Rmd (как и этот файл) и может содержать как текст, так и код на R.

Код (code chunk) заключается в специальные ограничители {r}:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Ячейке с кодом можно дать название (но это вовсе не обязательно):

{r cars}

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Добавление названия никак не отразится на «внешнем виде» файла при преобразовании его в html-файл.

Если мы хотим, чтобы при преобразовании файла в html ячейка с кодом не отображалась, а отображался только результат, который получается при исполнении кода в этой ячейке, нужно добавить параметр echo=FALSE:

##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Если мы хотим, чтобы при преобразовании файла в html код в ячейке не исполнялся (например, в ячейке содержится код для установки библиотеки foreign, и нам не хочется устанавливать библиотеку каждый раз, когда “связываем” html-файл), нужно добавить параметр eval=FALSE:

install.packages("foreign")

Конечно, опции echo и eval – далеко не единственные опции, которые можно специфицировать при добавлении кода. Про разные опции можно почитать в замечательном cheatsheet от RMarkdown.