Как сделать rmd файл в r studio
моя мотивация заключается в том, что я могу захотеть запустить ту же команду, когда я нахожусь в другой среде редактирования текста, или я могу объединить команду в большем makefile .
поставить Sys.sleep(30) в куске, и вы ясно увидите, какие команды вызываются RStudio. В основном они
- library(knitr); knit() для получения файла markdown;
- RStudio имеет внутренние функции для преобразования markdown в HTML;
второй шаг будет более прозрачным в следующей версии markdown пакета. В настоящее время вы можете использовать knitr::knit2html('your_file.Rmd') чтобы получить аналогичный HTML-файл, как RStudio дает вам.
Базовый Скрипт
так что теперь R markdown пакет был выпущен, вот некоторый код для репликации функций Knit в Html.
здесь test.rmd - это имя вашего файла R markdown. Обратите внимание, что я не уверен на 100% в строке browseURL (поэтому мой вопрос здесь о открытие файлов в веб-браузере).
параметры markdownToHTML
хорошая вещь о markdownToHTML это есть куча опций в том, как создается HTML (см. ?markdownHTMLOptions ). Например, если вам нужен только фрагмент кода без всей информации заголовка, вы можете написать:
или если вам не нравится жесткая упаковка (т. е. вставка разрывов строк, когда в источнике markdown есть одиночные ручные разрывы строк), вы можете опустить опцию "hard_wrap".
make-файл
это также может быть добавлено в makefile, возможно, с помощью Rscript -e (напр., что-то вроде этого). Вот базовый пример makefile, который я собрал, где test указывает, что файл rmd называется test.rmd .
файл makefile использует мои предпочтительные опции markdown: т. е. options=c('use_xhtml', 'base64_images')
очень простой метод командной строки от knitr в двух словах:
для этого требуется rmarkdown для установки с install.packages(rmarkdown) и pandoc установлен (по-видимому, он поставляется с Rstudio, см. knitr в двух словах для более подробной информации).
до сих пор, когда я использовал это, он красиво помещает все графики в HTML-файл, а не как изображения в каталоге рисунков и очищает любые промежуточные файлы, если таковые имеются; так же, как компиляция в RStudio делает.
7.1 rmarkdown
rmarkdown – это пакет, который позволяет соединять R команды и их исполнения в один документ. В результате можно комбинировать текст и исполняемый код, что в свою очередь позволяет делать: * докумунты в формате .html , .pdf (используя , мы почти не будем это обсуждать), .docx * презентации в формате .html , .pdf (используя пакет beamer ) .pptx -презентации * набор связанных .html документов (полноценный сайт или книга)
7.1.1 Установка
Как и все пакеты rmarkdown можно установить из CRAN
7.1.2 Составляющие rmarkdown -документа
-
шапка (факультативна)
- обычный текст с markdown форматированием (расширенный при помощи Pandoc)
- блоки кода (не обязательно на языке R), оформленные с двух сторон тройным бэктиком ``` (у меня на клавиатуре этот знак на букве ё).
7.1.3 Пример rmarkdown -документа
Создайте файл .Rmd в какой-нибудь папке (в RStudio, это можно сделать File > New file > R Markdown ). Скомпелировать файл можно командой:
или кнопкой . Вот пример кода:
Создайте и скомпелируйте свой rmarkdown -документ с заголовком, текстом и кодом.
7.1.4 Markdown
Универсальны язык разметки, работает во многих современных он-лайн системах создания текста.
7.1.4.1 Заголовки
7.1.4.2 Форматирование
италик или другой италик
жирный или другой жирный
7.1.4.3 Списки
- кролик
- заяц
- заяц серый
- машины
- автобус
- можно еще ставить плюс
- и минус
7.1.4.4 Ссылки и картинки
Или даже просто голую метку.
Опять же можно вставить только метку
7.1.4.5 Код
Код нужно оформалять вот так rmarkdown::render()
Если хочется использовать результат работы кода в тексте, нужно в начале поставить язык, который будет исполнять код, например, в
Фигурные скобки не обязательны, но тогда RStudio подсветит.
7.1.4.6 Цитаты
Цитаты нужно офрмлять так. Это попадет в тот же фрагмент.
А вот тут произошел разрыв. Кстати, здесь тоже можно использовать markdown.
7.1.4.7 Разрыв страницы
7.1.4.8 HTML
Чистый HTML Еще можно писать в HTML. и Markdown в HTML даже работает правильно. Но можно использовать и теги.7.1.4.9 Таблицы
Еще есть целая наука как делать таблицы в Markdown, но я предпочитаю использовать он-лайн генератор.
7.1.5 Pandoc
Pandoc это программа, созданная Дж. МакФарлэйном (J. MacFarlane), которая позволяет переходить из разных текстовых форматов в другие, а также смешивать их. Я покожу лишь несколько полезных расширений.
7.1.5.1 Верхние и нижние индексы
7.1.5.2 Нумерованные примеры
- Славный пример номер раз.
- Славный пример номер два.
- Славный пример номер три, у которого есть имя.
Я могу сослаться на пример (3)!
7.1.5.3 Сноски
7.1.5.4 Математика: \(\LaTeX\)
\(\LaTeX\) код может быть в тексте \(\frac<\pi>>\) или отдельной строчкой:
7.1.6 Code chunks
Фрагменты кода имеют свои наборы свойств, который можно записывать в фигурных скобках.
7.1.6.1 Язык программирования
7.1.6.2 Появление и исполнение кода
7.1.6.3 Другие полезные аргументы
Существует достаточно много аргументов, которые можно перечислить в фигурных скобках в фрагменте кода, вот некоторые из них:
Все эти аргументы можно перечислить в функции knitr::opts_chunk$set(. ) :
7.1.6.4 Pets or livestock?
В RMarkdown каждому фрагменту кода можно дать имя (но избегайте пробелов и точек):
Maëlle Salmon написал отличный пост, почему полезно именовать фрагменты кода:
- проще ориентироваться
- код более читаемый
- ошибки при компеляции показывают имя, а не номер
- если фрагмент кэшировался, то добавление одного фрагменты перед ним, не заставит все пересчитываться
- в blogdown можно ссылаться
7.1.7 YAML шапка
Факультативная YAML шапка обычно содержит метаданные документа, и аргументы, необходимые для работы некоторых дополнений.
7.1.7.1 Тип получившегося файла
- output: html_document (по умолчанию)
- output: word_document
- output: pdf_document (но нужно договориться с \(\LaTeX\) ом на вашем компьютере)
- output: ioslides_presentation
- output: slidy_presentation
- output: slidy_presentation
- output: beamer_presentation
7.1.7.2 Библиография
Существует несколько сопособов вставлять библиографию в RMarkdown. Я раскажу, как использовать пакет Bibtex (как видно из названия, сделанный для \(\LaTeX\) ). Для начала нужно создать файл с раширением .bib, в который записать все источники, которые будут использоваться (библиографию в формате BibTeX выдает, например, GoogleScholar):
На следующем шаге нужно добавить название файла с раширением .bib в YAML шапку:
После этого, можно использовать сслыки в тексте
В своей работе Gordon, Barthmaier, and Sands (2002) раскрыл…
Об этом можно узнать из (Ladefoged and Maddieson 1996; Gordon, Barthmaier, and Sands 2002) , но …
В своей работе (Gordon, Barthmaier, and Sands 2002) раскрыл…
Об этом можно узнать из (см. Gordon, Barthmaier, and Sands 2002, с. 33–35; а также Ladefoged and Maddieson 1996, гл. 1) …
Список литературы автоматически появляется в конце.
7.1.7.3 Оглавление и пр.
Существует сразу несколько аргументов, отвечающих за оглавление.
- toc вставлять ли оглавление
- toc_depth глубина иерархии, которую отражать в огловлении
- toc_float должно ли оглавление все время следовать за текстом
- collapsed должно ли оглавление быть все время полностью раскрыто
- collapsed должно ли оглавление быть все время полностью раскрыто
- number_sections автоматическая нумерация секций
- code_folding (hide) — делать ли кнопочку, показывающую/скрывающую весь код
- theme одна из Bootstrap тем
- highlight : “default”, “tango”, “pygments”, “kate”, “monochrome”, “espresso”, “zenburn”, “haddock” или “textmate”
7.1.7.4 Отображение датафреймов
- df_print: default
- df_print: kable
- df_print: tibble
- df_print: paged
7.1.8 Где хостить .html ?
Полученные .html можно разместить в интернете:
на каком-то вашем хосте
опубликовать на бесплатном хостинке Rpubs
- опубликовать на гитхабе и включить Github Pages
Теперь создайте документ index.Rmd, в котором напишите код на R и на Python, вставьте картинку, сноску, ссылку на литературу, таблицу и оглавление. Скомпелируйте .html документ и опубликуйте его на Github, пройдя по этой ссылке. Cделайте Github Pages и заполните README.md файл.
7.2 Бывают и другие способы представления данных
-
– динамические дэшборды – динамические сайты, которые позволяют взаимодействовать с пользователем – постеры в RMarkdown – содержит много шаблонов: для книги, статьи, постера, резюме, визитки… да хоть приглашение на свадьбу можно сделать.
Ссылки на литературу
Gordon, M., P. Barthmaier, and K. Sands. 2002. “A Cross-Linguistic Acoustic Study of Voiceless Fricatives.” Journal of the International Phonetic Association 32 (2): 141–74.
Ladefoged, P., and I. Maddieson. 1996. The Sounds of the World’s Languages. Oxford Publishers.
Xie, Yihui, Joseph J Allaire, and Garrett Grolemund. 2019. R Markdown: The Definitive Guide. Chapman; Hall/CRC.
R Markdown как диалект довольно незначительно отличается от базового Markdown, описание которого легко найти в Сети. Для понимания особенностей R Markdown удобно воспользоваться кратким руководством или шпаргалкой, предлагаемыми разработчиками пакета.
Предварительно отформатированный текст
Текстовый блок, в форматирование которого RMarkdown не вмешивается, отображается моноширинным шрифтом:
Аналогичный текст, расположенный внутри строки, задаётся как
Вставка в документ Markdown фрагмента кода
позволяет отобразить в готовом документе сам этот код и результат его выполнения:
Если исходный код не должен отображаться и выдаются только результаты его исполнения:
Если напротив, код должен только отображаться, но не исполняться:
Выполнение кода внутри строки текста
Исполняемый код может содержать ошибки, из-за чего прерывается обработка документа. Например, следующий код:
Вставка в документ исходного кода из файла test.R осуществляется с помощью:
При этом код test.R выполняется и результаты его работы также помещаются в документ. Если нужно просто отобразить код в документе, то, как обычно, добавляется опция eval=FALSE
Указание кодировки файла с исходником поможет, в частности, корректно отобразить комментарии на русском языке.
Ссылки между фрагментами кода
Рассмотрим следующий документ:
В втором фрагменте кода (с именем chunk2 ) используется функция printSqr . Однако сама функция будет задана ниже, в chunk3 . Попытка вызова неизвестной функции, естественно, приведёт к ошибке. Чтобы этого не случилось, выше chunk2 мы поставим ссылку на копию printSqr при помощи параметра ref.label . В результате функция будет определена, но не будет отображаться в документе благодаря echo=FALSE .
Отметим, что собственного имени первому фрагменту кода присвоить нельзя, так как он является копией chunk3 .
Комментарии
в Markdown делаются также, как и в HTML:
Markdown внутри Markdown
Если нужно показать Markdown-разметку внутри Markdown-документа, то ее приходится экранировать. Например, каждая из строк фрагмента кода
начинается с отступа в 4 пробела. Это делается для того чтобы отобразить обратные косые черточки (backticks), обрамляющие код.
Хорошее решение сохранит как можно больше содержимого (например, изображения, уравнения, таблицы HTML и т. Д.). Решение должно быть запущено из командной строки. Хорошим решением также будет кроссплатформенность и, в идеале, минимизация зависимостей, чтобы упростить совместное использование make-файлов и т. Д.
Конкретно вариантов очень много:
- Преобразовывать ли RMD в MD в HTML в PDF; или RMD в MD в PDF; или RMD в PDF
- При использовании markdown пакета в R, какие параметры указать
- Независимо от того, использовать pandoc ли пакет, встроенный в R, или что-то еще
Обновленный ответ (10 фев 2013)
Пакет rmarkdown : теперь rmarkdown на github доступен пакет, который взаимодействует с Pandoc. Он включает в себя render функцию. В документации довольно понятно, как конвертировать rmarkdown в pdf среди ряда других форматов. Это включает в себя включение форматов вывода в файл rmarkdown или выполнение задания формата вывода для функции rend. Например,
Командная строка: когда я запускаю render из командной строки (например, используя make-файл), у меня иногда возникают проблемы с тем, что pandoc не может быть найден. Предположительно, его нет на пути поиска. Следующий ответ объясняет , как добавить pandoc в среде R .
Так, например, на моем компьютере под управлением OSX, где у меня есть копия pandoc через RStudio, я могу использовать следующее:
Старый ответ (около 2012 г.)
Итак, некоторые люди предположили, что Pandoc - это правильный путь. См. Примечания ниже о важности наличия последней версии Pandoc.
Использование Pandoc
Я использовал следующую команду для преобразования R Markdown в HTML (т. Е. Вариант этого make-файла ), где RMDFILE это имя файла R Markdown без .rmd компонента (также предполагается, что расширение есть, .rmd а нет .Rmd ).
а затем эту команду для преобразования в pdf
Несколько замечаний по этому поводу:
- Я удалил ссылку в файле примера, который экспортирует графики в imgur для размещения изображений.
- Я удалил ссылку на изображение, размещенное на imgur. Представляется, что цифры должны быть местными.
- Параметры в markdownToHTML функции означают, что ссылки на изображения относятся к файлам, а не к данным, хранящимся в файле HTML (т. Е. Я удалил их 'base64_images' из списка параметров).
- Результирующий выходной сигнал выглядел как это . Он явно создал документ в стиле LaTeX, в отличие от того, что я получаю, если распечатываю HTML-файл в pdf из браузера.
Получение последней версии Pandoc
Как упомянул @daroczig, для вывода PDF-файлов важно иметь последнюю версию Pandoc. На Ubuntu с 15 июня 2012 года я застрял с версией 1.8.1 Pandoc в диспетчере пакетов, но из журнала изменений видно, что для поддержки pdf вам нужна как минимум версия 1.9+ Pandoc.
Итак, я установил caball-install . А потом побежал:
Pandoc был установлен в.
/.cabal/bin/pandoc Таким образом, когда я запускал, pandoc он все еще видел старую версию. См. Здесь, чтобы добавить в путь .
Читайте также: