Różnica między R MarkDown i R NoteBook

144

Staram się zrozumieć na wysokim poziomie różnice między R Markdowni R NoteBook. Wiem, że są ze sobą powiązane, ale chciałbym dowiedzieć się, jak są ze sobą powiązane. Rozumiem, że:

Wiem, że notebooki R to tak naprawdę dokumenty R Markdown, ale jestem zdezorientowany co do terminologii.

Nowa opcja pliku RStudio ma oba R Markdowni, R NoteBooka wybranie jednego z nich otwiera R Markdownplik, ale z niewielkimi różnicami. Próbuję więc po prostu dowiedzieć się, dlaczego istnieją dwie opcje i jaka jest między nimi różnica?

wprowadź opis obrazu tutaj

Rozumiem, że notebooki R są nowo wprowadzone, a R Markdown istnieje już od jakiegoś czasu. Część zamieszania może wynikać z tego, że nigdy R Markdownwcześniej nie korzystałem z R Notebook, więc moje powiązane lub bardziej szczegółowe pytanie brzmi

Co robi R NoteBook inaczej niż tylko używanie R MarkDown lub jakie nowe możliwości oferuje R NoteBook?

Wszystkie moje trafienia w wyszukiwarkę internetową wskazują, że R Notebook używa R Markdown, ale nie znalazłem żadnej pomocy na temat tego, co dokładnie różni się między nimi.

PagMax
źródło
1
Używam knitr i LaTeX, więc wybieram opcję R Sweave. Nie korzystając z RMarkdown, mogę tylko powiedzieć, że LaTex może zrobić wszystko, ale ta moc niesie ze sobą złożoność i krzywą uczenia się. Istnieje również ogromna społeczność zwolenników oraz mnóstwo książek i zasobów.
prawnik
1
dzięki @lawyeR. Nie martwię się o zasoby i dość dobrze radzę sobie z R i LaTeX. Zastanawiałem się, czym jest Sweave, ale pomyślałem, że będę się tym martwić później. Dzięki za spostrzeżenia na ten temat. na razie patrzę tylko na różnice na najwyższym poziomie między różnymi smakami R.
PagMax
5
A skoro jesteś wielkim fanem czytania instrukcji, co powiesz na przeczytanie faktycznego pytania, na które odrzuciłeś głos, i odpowiedzi na pytanie, które jest zadane w pytaniu, zamiast wyrzucać materiały z dokumentacji?
PagMax

Odpowiedzi:

61

O ile rozumiem i z mojej konfiguracji, nie ma różnicy w kodowaniu. Różnica polega na renderowaniu. Rozszerzenie pliku jest takie samo.

Kiedy tworzysz nowy Notatnik R, dodaje html_notebookon opcję wyjścia w nagłówku. To jest różnica. Następnie można szybko wyświetlić podgląd renderowania bez konieczności jego łączenia. Odświeża również podgląd za każdym razem, gdy zapisujesz. Jednak w tym podglądzie nie masz wyjścia kodu (żadnych liczb, żadnych tabel ..) (przynajmniej w mojej konfiguracji). Bez html_notebookna wyjściu nie ma podglądu przycisku

wprowadź opis obrazu tutaj

jak widać, pojawiają się opcje podglądu, ale można je również wykonać na drutach w dowolnym formacie. Doda go do kodu nagłówka, gdy to zrobisz.

wprowadź opis obrazu tutaj

Jeśli jednak nie masz tego html_notebookw swoim nagłówku, możesz tylko zrobić na drutach swój kod, aby zobaczyć, jak wygląda (cała książka) (zignoruj ​​dodatkową domyślną opcję, którą umieściłem w obrazku)

wprowadź opis obrazu tutaj

a opcja podglądu nie pojawia się w menu rozwijanym

wprowadź opis obrazu tutaj

W przeciwnym razie działa tak samo. W przypadku niektórych domyślnych konfiguracji dane wyjściowe są również domyślnie ukryte w sekcji kodu.

Zauważ, że możesz mieszać kilka opcji wyjściowych w nagłówku, aby zachować podgląd i zachować opcje łączenia do eksportu.

R. Prost
źródło
2
jako dodatek jest błąd z UTC (uwzględniający akcenty i znaki spoza alfabetu angielskiego) w notebooku. Spowoduje to zepsucie danych wyjściowych i pliku ... więc lepiej trzymaj się przeceny ... Ten punkt jest nadal rozpatrywany (o ile wiem)
R. Prost
4
Twoja odpowiedź jest absolutnie taka, jak myślę, różnica jest po kilku miesiącach używania. To, co mnie bije, to R Notebook jest wszystkim i ponad tym, czym jest R MarkDown. Dlaczego więc kontynuować z R Markdown? Możesz używać notatnika R i bezpośrednio „robić na drutach” zamiast „podglądu” i masz swoją funkcjonalność R Markdown !!
PagMax
2
Myślę, że bardziej problem ze spuścizną, aby nie mylić ludzi, którzy już używają Rmarkdown. Dodatkowo obecna wersja notebooka (lub R) ma ten błąd, o którym wspomniałem powyżej, który zasadniczo uniemożliwia mi korzystanie z niego. Mój tekst jest również zastępowany bełkotem w pliku źródłowym, w zależności od tego, w jaki sposób używam (od rmardown do notatnika lub notatnika do rmarkdown). Więc trzymam się przeceny, dopóki nie mogę tego naprawić. Zwłaszcza, że ​​podgląd zeszytu nie jest dla mnie przydatny, po prostu podgląd tekstu bez wykresów itp. Ale ma spory potencjał.
R. Prost,
Kiedy używasz notatnika ar, na pewno otrzymujesz wszystkie dane wyjściowe w podglądzie, wykresach (dynamicznych i statycznych), tabelach itp. Ta odpowiedź powinna zostać poprawiona, aby usunąć stwierdzenie, że jej nie rozumiesz. Notebook R jest w dużej mierze lepszy z tego powodu, możesz uzyskać wszystkie dane wyjściowe po ponownej kompilacji za każdym razem, ponieważ podgląd zapamiętuje ostatni wynik twojego kawałka. Pozwala pisać ITERATYWNIE (co jest zawsze tym, czego potrzebujesz)
statquant
50

Niedawno znalazłem ten post, który wyjaśnił mi problem R Markdown vs.R Notebook. http://uc-r.github.io/r_notebook

Oto kilka odpowiednich wierszy:

Pisanie dokumentu R Notebook nie różni się od pisania dokumentu R Markdown. Składnia fragmentów tekstu i kodu nie różni się od tego, czego nauczyłeś się w samouczku języka R Markdown. Podstawowa różnica polega na interaktywności notebooka R. Przede wszystkim podczas wykonywania fragmentów w dokumencie R Markdown cały kod jest wysyłany do konsoli naraz , ale w R Notatniku wysyłany jest tylko jeden wiersz na raz . Pozwala to na zatrzymanie wykonywania, jeśli wiersz wywoła błąd.

Podczas tworzenia notatnika języka R w programie RStudio występuje również problem dotyczący łączenia w porównaniu z podglądem:

Podgląd pokazuje wyrenderowaną kopię HTML zawartości edytora. W konsekwencji, w przeciwieństwie do Knit , Preview nie uruchamia żadnych fragmentów kodu R. Zamiast tego wyświetlane są dane wyjściowe porcji, które były ostatnio uruchamiane w edytorze.

Mam nadzieję, że uznasz to za przydatne.

Mani Tajaddini
źródło
Ta druga część jest szczególnie pomocna w zrozumieniu różnicy!
gaelgarcia
Ta odpowiedź najbardziej mi pomogła.
Jabro
20

Z powyższych odpowiedzi nie wynika do końca jedna z najważniejszych różnic.

Z sekcji 3.2.1.3 Księgi Bookdown :

W menu na pasku narzędzi edytora znajduje się również Restart R and Run All Chunkspozycja Run, która zapewnia nową sesję języka R przed uruchomieniem wszystkich fragmentów. Jest to podobne do Knitprzycisku, który uruchamia oddzielną sesję języka R w celu skompilowania dokumentu.

Innymi słowy, dzianie tworzy nowe środowisko i uruchamia tam cały kod. Z kolei Notatnik języka R używa środowiska globalnego do renderowania pliku HTML. W rzeczywistości w przypadku notatnika R zmiany w pliku HTML następują za każdym razem, gdy .Rmddokument jest zapisywany. PreviewPrzycisk jedynie otwiera plik HTML w swoim obecnym stanie. Żaden kod nie jest uruchamiany. Previewdosłownie oznacza to, co mówi: po prostu pokazuje, co już zostało zrobione.

Dlaczego to ma znaczenie? Na przykład, jeśli plik R Notebook .Rmdjest otwarty, ale nie są uruchomione żadne fragmenty kodu, plik HTML wyrenderuje cały kod przeceny i wejściowy poprawnie, ale nie pojawi się żaden wynik. Lub załóżmy, że definiujesz jakąś zmienną xw konsoli, ale nie we fragmencie kodu. Jeśli spróbujesz użyć xgdzieś w notatniku R, będzie działać dobrze. Podgląd dokumentu HTML również będzie działał dobrze. Z drugiej strony łączenie dokumentu wygeneruje błąd „nieznanej zmiennej”, ponieważ łączenie uruchamia cały kod w nowym środowisku, a zmienna xnigdy nie została zdefiniowana w pliku przecen.

Sean Raleigh
źródło
8

Różnica polega na tym, że w R Notebok możesz pisać fragmenty Markdown i R-code, a następnie bezpośrednio je wykonywać i od razu wyświetlać wyniki. To rodzaj notatnika dla ciebie.

R Markdown służy do tworzenia ładnie wyglądających wyników w formacie html, pdf lub Word Document. Łączenie fragmentów Markdown i R-Code-Chunks. Krótkie wprowadzenie i motywacja można znaleźć tutaj .

Jeśli chcesz uzyskać więcej informacji o pakiecie knitr, kliknij tutaj.

Swolf
źródło
2
Cóż, to nadal nie wyjaśnia, czym różni się Markdown od Notebook. (Rozumiem, że notebook używa przeceny), ale przecena R istniała przed wprowadzeniem notebooków R w zeszłym roku. Jakie nowe funkcje są dostępne w notebooku R, które wcześniej nie były możliwe przy użyciu samego R Markdown?
PagMax
3
@PagMax Myślę, że różnica polega na szybkości renderowania danych wyjściowych html z pliku Rmarkdown. Jeśli chcesz użyć knitr do wygenerowania wyjścia HTML z przeceny R, „związanie” całego kodu i wygenerowanie wyniku zajmuje trochę czasu. Aby przyspieszyć, możesz wyświetlić Rmarkdown w html za pomocą „trybu” Rnotebooka w Rstudio, zmieniając wynik na „html_notebook”, pozwala na ponowne uruchomienie fragmentu, a następnie ctrl + shift + k (pc) i HTML odświeża się bardzo szybko.
chang02_23
1
Myślę, że problem OP polega na tym, że nie ma dużej różnicy między 2. Główną różnicą, którą dostrzegłem głównie po przeczytaniu odpowiedzi tutaj, jest to, że RNB pozwala na wykonanie pojedynczych fragmentów R kodu niezależnie i „w linii”, podczas gdy RMD wymaga renderowania lub nie renderowania całego pliku. Wyobraź sobie, że masz ogromny plik i po prostu potrzebujesz sprawdzić mały wykres. RNB jest do tego dobry. Renderowanie RMD może trwać zbyt długo, a zatem jest niewygodne.
Bryan Goggin,
@BryanGoggin Nadal możesz również wykonywać niezależne fragmenty w Rmd.
PagMax
6

Oto jedna praktyczna różnica, którą znalazłem:

Kiedy trzeba wypowiedzieć się część tekstu, wkładki RMarkdown #w każdej linii tekstu, natomiast RNotebook starannie oddaje tekst między jednej pary <!--, --->znaków (jak w plikach HTML)

Można powiedzieć, co za banalna różnica. Jednak tylko z tego powodu zawsze używam R Notebook (zamiast RMarkdown) w RStudio dla wszystkich moich dokumentów. We wszystkim innym wydają się takie same (przynajmniej dla moich potrzeb, takich jak generowanie html i pdf)

W przeciwnym razie moje komentarze nagle stają się nagłówkami, jak poniżej:

# This part is commented out, but will show as Heading 1 font text
IVIM
źródło
R Markdownużywa również <!-- -->do komentowania fragmentów tekstu. Tylko fragmenty kodu są komentowane za pomocą #. Moja RStudiowersja to 1.3.1056.
Jabro
5

Podobieństwa: Notatnik R i dokument R Markdown są bardzo podobne. Format Markdown działa w obu typach plików. Oba formaty plików mogą być używane do przekazywania kodu wraz z wynikami i komentarzami innym osobom. Można zdecydować się na łączenie utworzonego dokumentu z formatami wyjściowymi HTML, PDF i WORD. Jeśli w kodzie jest błąd, dane wyjściowe nie zostaną wygenerowane. Aby uruchomić plik: CTRL + SHIFT + K i wstawić fragment kodu: CTRL + ALT + I.

Dokument R Markdown: Dokument Rmd można skonfigurować za pomocą kreatora i zawiera opcje odtwarzalności dokumentu, slajdów prezentacji, błyszczącej aplikacji itp. Oraz opcję tworzenia dokumentu z szablonu. Jeśli zmienisz kod, wyjście jest wykonywane na wyjściu Rmd. Nie oferuje opcji podglądu dokumentu. Nagłówek YAML ma format wyjściowy: output: html_document

R Notebook Document: Dokument R nb jest uruchamiany bezpośrednio i nie pojawia się żaden kreator (jak w przypadku .RMD). Wraz z plikiem notatnika generowany jest dodatkowy plik html o rozszerzeniu * .nb.html. Notebook ma opcję podglądu. Jeśli jakikolwiek kod zostanie zmieniony lub edytowany, nowe dane wyjściowe nie są wyświetlane. Dane wyjściowe są wyświetlane w samym edytorze kodu. Niezależnie od tego, jaki był stary plik wyjściowy, jest on tylko renderowany. Zmiana kodu nie powoduje generowania nowych danych wyjściowych. Aby wyświetlić wyjście kodu, musimy wykonać fragment, a następnie pojawi się on na wyjściu. Nagłówek YAML ma dane wyjściowe jako: output: html_notebook

Nagłówek YAML : Jeśli zmienimy nagłówek YAML z jednego pliku na inny, zmieni to typ dokumentu. Na przykład masz notatnik R z nagłówkiem YAML jako html_notebook. Jeśli zmienisz nagłówek YAML, twój notatnik R zostanie przekonwertowany na dokument R Markdown.

Jeśli musisz wybrać jeden, skorzystaj z dokumentu RMarkdown, ponieważ oferuje on większą kontrolę i aktualizuje dokumenty, gdy tylko je zrobisz.

Saurabh Jain
źródło
4

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

„Zwykłe dokumenty R Markdown są„ połączone ”, ale notatniki są„ podglądane ”. Podczas gdy podgląd notatnika wygląda podobnie do wyrenderowanego dokumentu R Markdown, podgląd notatnika nie wykonuje żadnych fragmentów kodu R”

Sibo Jiang
źródło
3
Zgadzam się. Funkcja „podgląd” jest jedynym wyróżnikiem między nimi. Zastanawiam się, dlaczego trzymają się Rmarkdown, skoro Rnotebook jest wszystkim, czym jest Rmarkdown z dodatkową funkcją podglądu.
PagMax
3

Od jrnolda :

Pliki notatnika R pokazują dane wyjściowe wewnątrz edytora, jednocześnie ukrywając konsolę. Pliki markdown R pokazują dane wyjściowe wewnątrz konsoli i nie pokazują danych wyjściowych w edytorze. Różnią się wartością wyjścia w swoich nagłówkach YAML.
Nagłówek YAML dla notebooka R będzie zawierał wiersz,

---
ouptut: html_notebook
---

Nagłówek YAML dla pliku przeceny R będzie zawierał wiersz,

ouptut: html_document

Skopiowanie nagłówka YAML z notatnika R do pliku przeceny R zmienia go w plik przeceny R. i odwrotnie. Dokładniej, zmiana wartości outputna Wynika to z faktu, że RStudio IDE podczas otwierania i pakiet rmarkdown podczas dziania używa nagłówka YAML pliku, aw szczególności wartości outputklucza w nagłówku YAML, do określenia typu dokumentu jest.

Yang Dai
źródło