Разница между R MarkDown и R NoteBook

137

Я пытаюсь на высоком уровне понять, в чем разница между R Markdownи R NoteBook. Я знаю, что они взаимосвязаны, но я хотел бы выяснить, как они связаны. Я так понимаю:

Я знаю, что R Notebooks на самом деле являются документами R Markdown, но меня смущает терминология.

В новой опции RStudio есть и R Markdownи, R NoteBookи выбор любого из них открывает R Markdownфайл, но с небольшими отличиями. Итак, просто пытаюсь понять, почему есть два варианта и в чем разница между ними?

введите описание изображения здесь

Насколько я понимаю, ноутбуки R представлены недавно, и R Markdown существует уже некоторое время. Отчасти путаница может быть R Markdownсвязана с тем, что я никогда не использовал R Notebook до того, как был представлен R Notebook, поэтому мой связанный или более конкретный вопрос:

Чем отличается R NoteBook от простого использования R MarkDown или какие новые возможности предлагает R NoteBook?

Все мои результаты поиска в Интернете указывают на то, что R Notebook использует R Markdown, но я не нашел никакой справки о том, что конкретно между ними отличается.

PagMax
источник
1
Я использую knitr и LaTeX, поэтому выбираю вариант R Sweave. Не используя RMarkdown, все, что я могу сказать, это то, что LaTex может делать все, что угодно, но эта мощь приносит с собой сложность и кривую обучения. Кроме того, существует огромное сообщество сторонников, множество книг и ресурсов.
lawyeR 07
1
спасибо @lawyeR. Я не беспокоюсь о ресурсах и довольно хорошо разбираюсь в R и LaTeX. Мне было интересно, что такое Sweave, но я подумал, что побеспокоюсь об этом позже. Спасибо за понимание этого. а пока я просто смотрю на различия между этими различными вкусами R.
PagMax
5
И хотя вы большой поклонник чтения руководства, как насчет того, чтобы прочитать фактический вопрос, за который вы проголосовали против, и дать конкретный ответ на вопрос, вместо того, чтобы выкидывать материал из документации?
PagMax

Ответы:

56

Насколько я понимаю и из моей настройки разницы в кодировании нет. Разница в рендеринге. Расширение файла такое же.

Когда вы создаете новый блокнот R, он добавляет html_notebookпараметр вывода в заголовок. Вот в чем разница. Затем вы можете быстро просмотреть рендеринг, не связывая его. Он также обновляет предварительный просмотр каждый раз, когда вы сохраняете. Однако в этом превью у вас нет вывода кода (ни цифр, ни таблиц ...) (по крайней мере, в моей настройке). Без html_notebookвывода нет предварительного просмотра кнопки

введите описание изображения здесь

Как вы можете видеть, появляются параметры предварительного просмотра, но вы также можете связать его в любом формате. Когда вы это сделаете, он добавит его в код заголовка.

введите описание изображения здесь

Однако, если у вас нет этого html_notebookв заголовке, вы можете связать свой код только для того, чтобы увидеть, как он выглядит (вся книга) (пожалуйста, не обращайте внимания на дополнительную опцию по умолчанию, которую я добавил с изображением)

введите описание изображения здесь

и опция предварительного просмотра не отображается в раскрывающемся меню

введите описание изображения здесь

В остальном работает так же. Для некоторых конфигураций по умолчанию вывод также по умолчанию скрыт в разделе кода.

Обратите внимание, что вы можете смешивать несколько вариантов вывода в заголовке, чтобы сохранить предварительный просмотр и сохранить параметры вязания для экспорта.

Р. Прост
источник
2
в качестве надстройки есть ошибка с UTC (с учетом акцентов и неанглийских символов) с ноутбуком. Это испортит ваш результат и ваш файл ... так что лучше придерживайтесь уценки ... Этот вопрос все еще рассматривается (насколько я знаю)
Р. Прост
4
Ваш ответ абсолютно такой, как я думаю, разница после нескольких месяцев использования. Что меня превосходит, так это то, что R Notebook - это все и выше, чем R MarkDown. Тогда зачем продолжать использовать R Markdown? Вы можете использовать блокнот R и напрямую «вязать» вместо «предварительного просмотра», и у вас есть функция R Markdown !!
PagMax
2
Я думаю, это скорее проблема наследия, чтобы не сбивать с толку людей, уже использующих Rmarkdown. Кроме того, в текущей версии ноутбука (или R) есть ошибка, о которой я упоминал выше, которая не позволяет мне ее использовать. Мой текст также заменяется тарабарщиной в исходном файле, в зависимости от того, какой способ я использую (от rmardown до notebook или от notebook до rmarkdown). Поэтому я придерживаюсь уценки, пока не смогу это исправить. Тем более, что предварительный просмотр записной книжки не так полезен для меня, просто просмотр текста без графиков и т. Д., Но у него есть большой потенциал.
Р. Прост
42

Недавно я нашел этот пост, который разъяснил мне проблему R Markdown vs.R Notebook. http://uc-r.github.io/r_notebook

Вот несколько подходящих строк:

Написание документа R Notebook ничем не отличается от написания документа R Markdown. Синтаксис текста и фрагментов кода не отличается от того, что вы узнали в учебнике R Markdown. Основное отличие заключается в интерактивности R Notebook. Прежде всего, при выполнении фрагментов в документе R Markdown весь код отправляется на консоль сразу , но в R Notebook за раз отправляется только одна строка . Это позволяет останавливать выполнение, если строка вызывает ошибку.

Также есть это в knit vs. preview при создании R Notebook в RStudio:

Предварительный просмотр показывает вам визуализированную HTML-копию содержимого редактора. Следовательно, в отличие от Knit , Preview не запускает фрагменты кода R. Вместо этого отображается вывод фрагмента при его последнем запуске в редакторе.

Надеюсь, что вы найдете ее полезной.

Мани Таджаддини
источник
Вторая часть особенно полезна для понимания разницы!
gaelgarcia
15

Одно из наиболее важных различий не совсем ясно из приведенных выше ответов.

Из раздела 3.2.1.3 книги Bookdown :

В меню на панели инструментов редактора также есть Restart R and Run All Chunksпункт Run, который дает вам новый сеанс R перед запуском всех фрагментов. Это похоже на Knitкнопку, которая запускает отдельный сеанс R для компиляции документа.

Другими словами, вязание создает новую среду и запускает там весь код. В отличие от этого, R Notebook использует глобальную среду как есть для рендеринга HTML-файла. Фактически, для R Notebook изменения в HTML-файле происходят каждый раз при .Rmdсохранении документа. PreviewКнопка просто открывает файл HTML в его текущем состоянии. Код не запускается. Previewбуквально означает то, что он говорит: он просто показывает вам, что уже было сделано.

Почему это важно? Например, если .Rmdфайл R Notebook открыт, но никакие фрагменты кода не запускаются, тогда HTML-файл будет отображать всю уценку и код ввода без проблем, но никаких выходных данных не будет. Или предположим, что вы определяете некоторую переменную xв консоли, но не в фрагменте кода. Если вы попытаетесь использовать xгде-нибудь в R Notebook, он будет работать нормально. Предварительный просмотр HTML-документа также будет работать нормально. С другой стороны, вязание документа вызовет ошибку «неизвестная переменная», потому что вязание запускает весь код в новой среде, а переменная xнигде не определялась в файле уценки.

Шон Роли
источник
7

Разница в том, что в R Notebok вы можете писать фрагменты кода Markdown и R-кода, выполнять их напрямую и сразу же видеть результаты. Это своего рода записная книжка для себя.

R Markdown предназначен для создания красивых выходных документов в формате HTML, PDF или Word Document. Объединение Markdown и R-Code-Chunks. Краткое введение и мотивацию можно найти здесь .

Если вы хотите получить дополнительную информацию о пакете вязальных машин, нажмите здесь.

Swolf
источник
2
Это все еще не объясняет, чем Markdown отличается от Notebook. (Я понимаю, что в ноутбуках используется уценка), но уценка R существовала до ноутбуков R, представленных в прошлом году. Итак, какие новые функции в ноутбуке R были недоступны ранее при использовании R markdown?
PagMax
3
@PagMax Я думаю, что разница заключается в скорости рендеринга вашего html-вывода из вашего файла Rmarkdown. Если вы хотите использовать knitr для создания html-вывода вашей уценки R, потребуется немного времени, чтобы «связать» весь ваш код и сгенерировать вывод. Чтобы ускорить его, вы можете просмотреть свой Rmarkdown в html, используя "режим" Rnotebook в Rstudio, изменив вывод на "html_notebook", он позволяет вам выполнить повторный запуск фрагмента, затем нажать ctrl + shift + k (pc) и html обновляется очень быстро.
chang02_23
1
Я думаю, что проблема OP заключается в том, что на самом деле нет большой разницы между 2. Основное отличие, которое я вижу, которое я уловил, в основном, читая здесь ответы, заключается в том, что RNB позволяет вам выполнять отдельные фрагменты R кодируйте независимо и «в линию», в то время как RMD требует, чтобы вы визуализировали или не отображали весь файл. Представьте, что у вас есть огромный файл, и вам просто нужно проверить его на небольшой диаграмме. RNB для этого хорош. Рендеринг RMD может занять слишком много времени и, следовательно, неудобен.
Брайан Гоггин
@BryanGoggin Вы по-прежнему можете выполнять независимые фрагменты в Rmd.
PagMax 05
5

Вот одно практическое отличие, которое я обнаружил:

Когда вам нужно закомментировать часть текста, RMarkdown вставки #в каждой строке текста, в то время как RNotebook аккуратно инкапсулирует текст между одной парой <!--, --->знаков (как в HTML - файлы)

Можно сказать, какая банальная разница. Однако именно из-за этого я теперь всегда использую R Notebook (вместо RMarkdown) в RStudio для всех своих документов. Во всем остальном они кажутся одинаковыми (по крайней мере, для моих нужд, таких как создание html и pdf)

В противном случае мои комментарии внезапно превращаются в заголовки, как показано ниже:

# This part is commented out, but will show as Heading 1 font text
IVIM
источник
4

http://rmarkdown.rstudio.com/r_notebooks.html#notebook_file

«Обычные документы R Markdown« связаны », но записные книжки« просматриваются ». Хотя предварительный просмотр записной книжки похож на визуализированный документ R Markdown, предварительный просмотр записной книжки не выполняет ни одного из ваших фрагментов кода R»

Сибо Цзян
источник
2
Я согласен. Функция предварительного просмотра - единственное различие между ними. Интересно, почему они держатся за Rmarkdown, когда Rnotebook - это все, что есть Rmarkdown, с дополнительной функцией предварительного просмотра.
PagMax 05
4

Подобные сайты: Блокнот R и документ R Markdown во многом похожи. Формат Markdown работает с обоими типами файлов. Оба формата файлов могут использоваться для передачи кода вместе с результатами и комментариями другим пользователям. Можно выбрать привязку созданного документа к выходным форматам HTML, PDF и WORD. Если в коде есть ошибка, вывод не будет. Чтобы запустить файл: CTRL + SHIFT + K и вставить фрагмент кода: CTRL + ALT + I.

Документ R Markdown: документ Rmd может быть настроен с помощью мастера и имеет параметры воспроизводимости документа, слайдов презентации, блестящего приложения и т. Д., А также возможность создания документа из шаблона. Если вы измените код, вывод выполняется в выводе Rmd. Он не предлагает возможность предварительного просмотра документа. Заголовок YAML имеет формат вывода как: output: html_document

Документ R Notebook: документ R nb запускается напрямую, и мастер (как в случае с .RMD) не появляется. Вместе с файлом записной книжки создается дополнительный файл html с расширением * .nb.html. В записной книжке есть возможность предварительного просмотра. Если какой-либо код изменен или отредактирован, новый вывод не отображается. Результат отображается в самом редакторе кода. Каким бы ни был старый вывод, он только отображается. При изменении кода не создается никаких новых выходных данных. Чтобы показать вывод кода, нам нужно выполнить блок, и тогда он появится в выводе. Заголовок YAML имеет следующий вид: output: html_notebook

Заголовок YAML : если мы изменим заголовок YAML с одного файла на другой, это изменит тип документа. Например, у вас есть записная книжка R с заголовком YAML как html_notebook. Если вы измените заголовок YAML, ваш блокнот R будет преобразован в документ R Markdown.

Если вам нужно выбрать один, используйте документ RMarkdown, поскольку он предлагает больше контроля и обновляет документы, как только вы его связываете .

Саураб Джайн
источник
3

От jrnold :

Файлы записной книжки R показывают вывод внутри редактора, скрывая при этом консоль. Файлы уценки R показывают вывод внутри консоли и не показывают вывод внутри редактора. Они различаются значением вывода в своих заголовках YAML.
Заголовок YAML для записной книжки R будет содержать строку,

---
ouptut: html_notebook
---

Заголовок YAML для файла уценки R будет иметь строку,

ouptut: html_document

Копирование заголовка YAML из записной книжки R в файл уценки R изменяет его на файл уценки R, и наоборот. В частности, изменение значения outputна This связано с тем, что среда RStudio IDE при открытии и пакет rmarkdown при вязании используют заголовок YAML файла и, в частности, значение outputключа в заголовке YAML, чтобы определить, какой тип документа он является.

Ян Дай
источник