Різниця між R MarkDown та R Notebook


136

Я намагаюся на високому рівні зрозуміти, у чому різниця між R Markdownі R NoteBook. Я знаю, що вони взаємопов'язані, але я хотів би зрозуміти, як вони пов'язані. Моє розуміння таке:

Я знаю, що зошити R - це справді документи R Markdown, але мене не бентежить термінологія.

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

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

Я розумію, що R-ноутбуки нещодавно представлені, і R Markdown був там деякий час. Частина плутанини може бути через те, що я ніколи не використовував R Markdownраніше, ніж було введено R Notebook

Що R NoteBook робить інакше, ніж просто використовувати R MarkDown або які нові можливості пропонує R NoteBook?

Усі мої звернення до пошуку в Інтернеті вказують на те, що R Notebook використовує R Markdown, але я не знайшов жодної допомоги щодо того, що конкретно відрізняється між ними.


1
Я використовую трикотаж і LaTeX, тому я вибираю варіант R Sweave. Не використовуючи RMarkdown, все, що я можу сказати, - це те, що LaTex може робити все, що завгодно, але ця сила приносить із собою складність і криву навчання. Крім того, існує величезна спільнота прихильників та достатньо книг та ресурсів.
— lawyeR

1
дякую @lawyeR. Я не переживаю за ресурси і можу досить добре знайти свій шлях навколо R та LaTeX. Мені було цікаво, що таке Sweave, але я подумав, що пізніше переживатиму про це. Дякуємо за вашу думку про це. поки що я просто
— дивлюсь

5
І хоча ви великий шанувальник читання посібника, як щодо читання актуального питання, яке ви заявили, і відповіді конкретно на те, що задано у запитанні, а не викидання матеріалів із документації?
— PagMax

Відповіді:


55

Наскільки я розумію, і від моєї настройки немає різниці в кодуванні. Різниця полягає у візуалізації. Розширення файлу те саме.

Коли ви робите новий ноутбук R, він додає html_notebookопцію виводу у заголовок. Ось і різниця. Потім ви зможете переглянути попередньо візуалізацію швидко, не в'язавши її. Він також оновлює попередній перегляд кожного разу, коли ви зберігаєте. Однак у цьому попередньому попередньому перегляді у вас немає виводу коду (ні цифри, ні таблиці ..) (принаймні в моїй установці). Без html_notebookвиводу немає попереднього перегляду кнопок

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

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

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

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

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

а параметр попереднього перегляду не відображається у спадному меню

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

Інакше це працює так само. Для деяких конфігурацій за замовчуванням вихід також приховано за замовчуванням у розділі коду.

Зауважте, що ви можете змішати кілька варіантів виводу у своєму заголовку, щоб ви могли зберегти попередній перегляд та зберегти в'язані варіанти експорту.


2
як доповнення є помилка з UTC (з урахуванням акцентів та не англійських символів) із ноутбуком. Це викрутить ваш вихід і ваш файл ... так що краще дотримуйтесь розмітки ... Цей пункт все ще вирішується (наскільки я знаю)
— Р. Прост

4
Ваша відповідь - це абсолютно те, що я вважаю різницею після використання її протягом декількох місяців. Що мене б’є, це R Notebook - це все, що вище, ніж R MarkDown. Навіщо продовжувати R Markdown тоді? Ви можете використовувати ноутбук R та безпосередньо "в'язати" замість "попереднього перегляду", і у вас є функція R Markdown !!
— PagMax

2
Я думаю, що більше проблеми спадщини, щоб не бентежити людей, які вже використовують Rmarkdown. Плюс у поточній версії ноутбука (або R) є помилка, про яку я згадуюсь вище, яка заважає мені в основному її використовувати. Мій текст замінюється на безглуздість у вихідному файлі, залежно від того, який шлях я використовую (від rmardown до ноутбука чи ноутбука до rmarkdown). Тому я дотримуюся відмітки, поки не можу це виправити. Тим більше, що попередній перегляд ноутбука для мене не такий корисний, просто попередній перегляд тексту без сюжетів тощо. Але він має великий потенціал.
— Р. Прост

41

Нещодавно я знайшов цю публікацію, яка зрозуміла мені про проблему R Markdown vs. R Notebook. http://uc-r.github.io/r_notebook

Ось кілька відповідних рядків:

Написання документа R Notebook не відрізняється від написання документа R Markdown. Синтаксис тексту та коду не відрізняється від того, що ви дізналися у підручнику R Markdown. Основна різниця полягає в інтерактивності зошита R. Перш за все, при виконанні фрагментів у документі R Markdown весь код надсилається одразу на консоль , а в R Notebook одночасно надсилається лише один рядок . Це дозволяє зупинити виконання, якщо рядок викликає помилку.

Також це є на в'язаному та попередньому перегляді, коли ви створюєте ноутбук R в RStudio:

Попередній перегляд показує вам відтворену HTML-копію вмісту редактора. Отже, на відміну від Knit , Preview не запускає жодних фрагментів коду R. Натомість відображається вихід фрагмента, коли він востаннє виконувався в редакторі.

Сподіваюся, вам здається корисним.


Ця друга частина особливо корисна для розуміння різниці!
— gaelgarcia

15

Одне з найважливіших відмінностей не є повністю зрозумілим із наведених відповідей.

З Розділу 3.2.1.3 Книги обліку :

Також Restart R and Run All Chunksу Runменю на панелі інструментів редактора є пункт , який дає вам свіжий R сеанс до запуску всіх фрагментів. Це схоже на Knitкнопку, яка запускає окремий R-сеанс для складання документа.

Іншими словами, в'язання створює нове середовище і запускає весь код там. На відміну від цього, ноутбук R використовує глобальне середовище, як і для надання HTML-файлу. Насправді, для ноутбука R зміни у файлі HTML відбуваються кожного разу, коли .Rmdдокумент зберігається. PreviewКнопка просто відкриває файл HTML в його поточному стані. Код не виконується. Previewбуквально означає, що сказано: це просто показує вам, що вже зроблено.

Чому це має значення? Наприклад, якщо .Rmdфайл R Notebook відкритий, але не запускаються фрагменти коду, HTML-файл приведе всі розмітки та код введення добре, але вихід не з’явиться. Або, припустимо, ви визначаєте якусь змінну xв консолі, але не в куті коду. Якщо ви спробуєте використати xдесь у ноутбуці R, це буде добре. Попередній перегляд HTML-документа також спрацює чудово. З іншого боку, в'язання документа призведе до помилки "невідомої змінної", оскільки в'язання запускає весь код у новому середовищі, а змінна xніколи не була визначена у файлі розмітки.


7

Різниця полягає в тому, що в R Notebok ви можете написати Markdown та R-code Chunks та безпосередньо виконати їх та побачити результати відразу. Це свого роду Зошит для себе.

R Markdown є для створення приємних виходів у форматі html, pdf або word Document. Поєднання Markdown та R-Code-Chunks. Короткий вступ та мотивацію можна знайти тут .

Якщо ви хочете отримати більше інформації про в'язальний пакет, натисніть тут.


2
Ну, це все ще не пояснює, чим Markdown відрізняється від Notebook. (Я розумію, що ноутбук використовує розмітку), але розмітка R існувала до блокнотів R, де вони були представлені минулого року. То які нові функції є в ноутбуці R, які раніше були неможливі, лише використовуючи позначку R?
— PagMax

3
@PagMax Я думаю, що різниця полягає у швидкості в наданні вашого HTML-виводу з вашого файлу Rmarkdown. Коли ви хочете скористатися програвачем для створення виводу з HTML у розмітку R, потрібно "трохи" в'язати весь код та створити результат. Щоб пришвидшити це, ви можете переглянути свій Rmarkdown у html, використовуючи режим "Rnotebook" в Rstudio, змінивши свій вихід на "html_notebook", він дозволяє виконати повторний запуск фрагмента, потім виконати ctrl + shift + k (pc) і html оновлюється дуже швидко.
— chang02_23

1
Я думаю, що проблема, з якою виникає ОП, полягає в тому, що насправді немає величезної різниці між 2. Основна відмінність, яку я бачу, здебільшого, читаючи відповіді тут, полягає в тому, що RNB дозволяє виконувати окремі фрагменти R код незалежно та "в рядку", в той час як RMD вимагає від вас або виводити весь файл чи не виводити його. Уявіть, якби у вас був величезний файл і просто потрібно було перевірити маленький графік. RNB добре для цього. RMD може зайняти занадто багато часу для візуалізації і, таким чином, незручно.
— Брайан Гоггін

@BryanGoggin Ви все ще можете виконати незалежні фрагменти в Rmd.
— PagMax

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" в'язані ", але зошити переглядаються.


2
Я згоден. Функція "попереднього перегляду" - єдиний диференціатор між ними. Цікаво, чому вони тримаються на Rmarkdown, коли Rnotebook - це все, що є Rmarkdown, з додатковою функцією попереднього перегляду.
— PagMax

4

Схожі зображення: Зошит R та документ R Markdown дуже схожі. Формат розмітки працює в обох типах файлів. Обидва формати файлів можна використовувати для передачі коду разом з результатами та коментарями до інших. Можна в'язати створений документ у вихідних форматах HTML, PDF та WORD. Якщо в коді є помилка, вихід не буде генерований. Щоб запустити файл: CTRL + SHIFT + K та вставити фрагмент коду: CTRL + ALT + I.

Документ розмітки R: Документ Rmd може бути налаштований за допомогою майстра і має параметри для відтворюваного документа, слайдів презентації, блискучих додатків тощо та можливість створення документа з шаблону. Якщо ви змінюєте код, вихід виводиться на вихід Rmd. Він не пропонує можливості попереднього перегляду документа. Заголовок YAML має вихідний формат у вигляді: output: html_document

Документ R Notebook: Документ R nb запускається безпосередньо, і не з'являється майстра (як у випадку .RMD). Поряд з файлом ноутбука генерується додатковий HTML-файл із розширенням * .nb.html. Ноутбук має можливість попереднього перегляду. Якщо якийсь код змінено або відредаговано, новий вихід не відображається. Вихід відображається в самому редакторі коду. Яким би не був старий вихід, він лише надається. Від зміни коду не утворюється новий вихід. Для того, щоб показати вихідний код, нам потрібно виконати фрагмент, і тоді він з’явиться у висновку. Заголовок YAML має вихід у вигляді: вихід: 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на Це пояснюється тим, що RStudio IDE при відкритті та пакет rmarkdown при в'язанні використовує заголовок YAML файлу, і зокрема значення outputключа в заголовку YAML, щоб визначити, який тип документа це є.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.