Как конвертировать R скрипт в Rmarkdown документ, и R markdown документ в R скрипт
1. R -> Rmarkdown
Если вам надо конвертировать ваш R скрипт в Rmarkdown документ, не обязательно делать это с помощью копи паста. Функция knitr::spin() позволяет выполнить такую конвертацию, при этом необходимо учитывать следующие правила синтаксиса конвертации:
● Roxygen комментарии будут рассматриваться как обычный текст.
● Комментарий, начинающийся с #+, считается заголовком блока Knitr . Например, knitr::spin() переводит комментарий #+ label, fig.width=5 в заголовок чанка {r label, fig.width=5}.
● Код R формы {{ code }}преобразуется во встроенное выражение R в R Markdown.
● YAML шапка также может быть написана в начале R-скрипта в комментариях roxygen.
● Любой текст между /* и */ будет игнорироваться.
Привет R скрипта:
#' ---
#' title: "A report generated from a pure R script"
#' output:
#' pdf_document:
#' keep_tex: true
#' ---
#'
#' This is a report generated by `knitr::spin()`.
#'
#' Let's try some **knitr** options:
#+ echo=FALSE, fig.width=7
# This is a normal R comment.
plot(cars)
#' Now write an inline value. We know the value of $\pi$ is
{{ pi }}
#' .
#'
#' Finally please note that all roxygen comments are
#' optional. You do not need chunk options, either,
#' unless you want more control over the output
#' elements such as the size of plots.
# /* Write comments between /* and */ like C comments:
Sys.sleep(60)
# */
Функция knitr::spin() преобразует данный код в Rmarkdown документ следующего формата:
---
title: "A report generated from a pure R script"
output:
pdf_document:
keep_tex: true
---
This is a report generated by `knitr::spin()`.
Let's try some **knitr** options:
```{r echo=FALSE, fig.width=7}
# This is a normal R comment.
plot(cars)
```
Now write an inline value. We know the value of $\pi$ is
``r pi ``
.
Finally please note that all roxygen comments are
optional. You do not need chunk options, either,
unless you want more control over the output
elements such as the size of plots.
2. Rmarkdown -> R
Обратная операция, т.е. преобразования Rmarkdown в R скрипт, реализуется функцией knitr::purl(). Данная функция принимает в качестве первого аргумента путь к Rmarkdown документы, и второй аргумент позволяет управлять тем, что из Rmarkdown документа будет отображено в файле с R скриптом.
# Извлечение только R кода
knitr::purl("script.R", documentation = 0L)
# Извлечение R кода и настроек чанков
knitr::purl("script.R", documentation = 1L)
# Извлечение всего содержимого Rmarkdown документа
knitr::purl("script.R", documentation = 2L)
#заметки_по_R