Как сделать rmd файл в r studio

Обновлено: 07.07.2024

моя мотивация заключается в том, что я могу захотеть запустить ту же команду, когда я нахожусь в другой среде редактирования текста, или я могу объединить команду в большем makefile .

поставить Sys.sleep(30) в куске, и вы ясно увидите, какие команды вызываются RStudio. В основном они

  1. library(knitr); knit() для получения файла markdown;
  2. 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 Списки

  • кролик
  • заяц
    • заяц серый
    1. машины
      1. автобус
      • можно еще ставить плюс
      • и минус

      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 Нумерованные примеры

      1. Славный пример номер раз.
      2. Славный пример номер два.
      3. Славный пример номер три, у которого есть имя.

      Я могу сослаться на пример (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 фрагмента кода

      позволяет отобразить в готовом документе сам этот код и результат его выполнения:

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

      Если напротив, код должен только отображаться, но не исполняться:

      Выполнение кода внутри строки текста

      Исполняемый код может содержать ошибки, из-за чего прерывается обработка документа. Например, следующий код:

      error.jpg

      Вставка в документ исходного кода из файла 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 он все еще видел старую версию. См. Здесь, чтобы добавить в путь .

      Читайте также: