Немного про Markdown

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

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

Можно добавлять заголовки разных уровней:

Заголовок 1

Заголовок 2

Заголовок 3

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

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

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

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

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

\(y_i = \beta_0 + \beta_1 \cdot x_i + \varepsilon_i\)

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

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

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

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

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.