Різниця між 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.