Разница между 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, но я не нашел никакой справки о том, что конкретно между ними отличается.


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. Краткое введение и мотивацию можно найти здесь .

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


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

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, чтобы определить, какой тип документа он является.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.