web-dev-qa-db-ja.com

R Markdown、Knitr、Pandoc、およびBookdownの関係

R Markdown、Knitr、Pandoc、およびBookdownの機能間の関係は何ですか?

具体的には、埋め込みRコードでマークアップドキュメントを変換する際のこれらのパッケージ間の「分業」とは何ですか(例:.Rnw または .Rmd)最終的な出力(例:.pdf または .html)?また、Knitrを使用してRMarkdownを処理する場合、rmarkdownパッケージは何を行い、markdown package

70
RobinL

パンドック

Pandocはドキュメントコンバーターです。さまざまなマークアップ形式から、.doc.pdfなど、他の多くの形式に変換できます。

Pandocは、GUIのない​​コマンドラインツールです。 Rとは別の独立したソフトウェアです。ただし、rmarkdownはドキュメント変換に依存しているため、R Studioにバンドルされています。

Pandocはドキュメントを変換するだけでなく、ベースマークダウン言語の上に機能を追加して、より複雑な出力をサポートできるようにします。

Rマークダウン

R Markdownはマークダウンに基づいています:

マークダウン(マークアップ言語)

Markdownは、プレーンテキスト形式の構文がHTMLやその他の多くの形式に変換できるように設計された軽量のマークアップ言語です。マークダウンファイルは、通常.mdという拡張子が付けられたプレーンテキストファイルです。

HTMLやLatexのような他のマークアップ言語と同様に、Rから完全に独立しています。

明確に定義されたマークダウン標準はありません。これは、さまざまなベンダーが独自の言語のバリアントを作成して欠陥を修正したり、欠落している機能を追加したりするため、断片化につながりました。

Markdown(Rパッケージ)

markdown は、.RmdファイルをHTMLに変換するRパッケージです。 rmarkdown の前身であり、より多くの機能を提供します。使用は推奨されなくなりました。

R Markdown(マークアップ言語)

R Markdownは、マークダウン構文の拡張です。 R Markdownファイルは、通常ファイル拡張子.Rmdを持つプレーンテキストファイルです。これらは、後で実行できるようにRコードを埋め込み可能なマークダウン構文の拡張を使用して記述されています。

rmarkdownパッケージによって処理されることが期待されているため、Rマークダウンファイルの一部として Pandoc markdown syntax を使用することができます。これは、生のHTML/Latexやテーブルなどの追加機能を提供する元のマークダウン構文の拡張機能です。

R Markdown(パッケージ)

Rパッケージrmarkdownは、.Rmdファイルを処理し、さまざまな形式に変換するライブラリです。

コア関数はrmarkdown::renderで、これは がpandoc の肩の上にあります。この関数 'は、pandocを使用して入力ファイルを指定された出力形式にレンダリングします。入力に編みが必要な場合、knitr::knitがpandocの前に呼び出されます。

RMarkdownパッケージの目的は、Pandocオプションをカスタマイズするための合理的な適切なデフォルト値とRフレンドリーなインターフェースを提供するための単純な です。

RMarkdownファイルの上部に表示されるYAMLメタデータは、ビルドプロセスをガイドするために、rmarkdown::renderにオプションを渡すことを具体的に示しています。

RMarkdownはマークダウン構文のみを扱うことに注意してください。 .Rhtmlまたは.Rnwファイルを変換する場合は、knitr::knit2htmlknitr:knit2pdfなどのKnitrに組み込まれている便利な関数を使用する必要があります。

ナイト

Knitrは、コードが埋め込まれたプレーンテキストドキュメントを受け取り、コードを実行し、結果をドキュメントに「編み込み」ます。

たとえば、変換します

コア関数はknitr::knitであり、デフォルトでは、これは入力ドキュメントを見て、Rnw、Rmdなどのタイプを推測します。

このコア機能は3つの役割を実行します。-ソースパーサー。入力ドキュメントを調べ、ユーザーが評価したいコード部分を検出します。 -このコードを評価するコードエバリュエーター-評価結果を生の出力タイプで解釈可能な形式でドキュメントに書き戻す出力レンダラー。たとえば、入力ファイルが.Rmdの場合、出力レンダーは.md形式でコード評価の出力をマークアップします。

ドキュメント形式間の変換

Knitrはnot文書形式間の変換を行います-.md.htmlに変換するなど。ただし、他のライブラリを使用してこれを行うのに役立ついくつかの便利な機能を提供します。 rmarkdownパッケージを使用している場合、rmarkdown::renderで置き換えられているため、この機能を無視する必要があります。

例はknitr:knit2pdfで、次のようになります。 '入力RnwまたはRrstドキュメントを編み、texi2pdfまたはrst2pdfを使用してPDFにコンパイルします。

潜在的な混乱の原因はknitr::knit2htmlです。これは "入力マークダウンソースを編成し、markdown::markdownToHTMLを呼び出して結果をHTMLに変換する便利な関数です。"markdownパッケージがrmarkdownパッケージに置き換えられたため、これはレガシー機能になりました。 this note を参照してください。

ブックダウン

BookdownパッケージはR Markdownの上に構築され、Markdown構文の単純さと、複数のタイプの出力形式(PDF/HTML/Word /…)の可能性を継承します。

マルチページHTML出力、図/表/セクション/式の番号付けと相互参照、部品/付録の挿入、GitBookスタイルのインポート( https://www.gitbookなど)の機能を提供します。 .com )を使用して、エレガントで魅力的なHTMLブックページを作成します。

96
RobinL