web-dev-qa-db-ja.com

R MarkdownをHTMLに変換する方法は?つまり、「Knit HTML」はRstudio 0.96で何をしますか?

Rstudio 0.96のR Markdownファイルで「Knit HTML」を押すと実行されるコマンドは何ですか?

私の動機は、別のテキスト編集環境で同じコマンドを実行したい場合や、より大きなmakefileでコマンドを組み合わせたい場合です。

64
Jeromy Anglim

Sys.sleep(30)をチャンクに入れると、RStudioによって呼び出されるコマンドが明確にわかります。基本的に彼らは

  1. library(knitr); knit()はマークダウンファイルを取得します。
  2. RStudioには、マークダウンをHTMLに変換する内部関数があります。

次のバージョンの markdown パッケージでは、2番目のステップがより透明になります。現在、knitr::knit2html('your_file.Rmd')を使用して、RStudioが提供するのと同様のHTMLファイルを取得できます。

39
Yihui Xie

基本的なスクリプト

R markdownパッケージがリリースされた であるため、Knitの機能をHtmlに複製するためのコードを次に示します。

_require(knitr) # required for knitting from rmd to md
require(markdown) # required for md to html 
knit('test.rmd', 'test.md') # creates md file
markdownToHTML('test.md', 'test.html') # creates html file
browseURL(paste('file://', file.path(getwd(),'test.html'), sep='')) # open file in browser 
_

ここで、_test.rmd_はRマークダウンファイルの名前です。私はbrowseURL行について100%自信がないことに注意してください(ここで私の質問は Webブラウザでファイルを開く )。

markdownToHTMLオプション

markdownToHTMLの良い点は、HTMLの作成方法に多くのオプションがあることです(_?markdownHTMLOptions_を参照)。したがって、たとえば、すべてのヘッダー情報のないコードフラグメントだけが必要な場合は、次のように記述できます。

_markdownToHTML('test.md', 'test.html', options='fragment_only')
_

または、ハードラップ(つまり、マークダウンソースに手動の改行が1つしかないときに改行を挿入する)が気に入らない場合は、 'hard_wrap'オプションを省略できます。

_# The default options are 'hard_wrap', 'use_xhtml', 
#      'smartypants', and 'base64_images'.
markdownToHTML('test.md', 'test.html', 
       options=c('use_xhtml', 'base64_images'))
_

メイクファイル

これは、おそらく_Rscript -e_(たとえば、 このような何か )を使用して、メイクファイルにすべて追加することもできます。ここに私がまとめた基本的なmakefileの例を示します。testは、rmdファイルが_test.rmd_と呼ばれることを示します。

_RMDFILE=test

html :
    Rscript -e "require(knitr); require(markdown); knit('$(RMDFILE).rmd', '$(RMDFILE).md'); markdownToHTML('$(RMDFILE).md', '$(RMDFILE).html', options=c('use_xhtml', 'base64_images')); browseURL(paste('file://', file.path(getwd(),'$(RMDFILE).html'), sep=''))"
_

メイクファイルは、私の好みのマークダウンオプションを使用します。つまり、options=c('use_xhtml', 'base64_images')

62
Jeromy Anglim

knutshellのknitr からの非常に簡単なコマンドラインメソッド:

_R -e "rmarkdown::render('knitr_example.Rmd')"
_

これにはrmarkdowninstall.packages(rmarkdown)とともにインストールする必要があり、 pandoc がインストールされている必要があります(明らかにRstudioに付属しています。 knitrshell in knutshell 詳細については)。

これまでのところ、これを使用すると、すべてのプロットが画像としてではなくHTMLファイルに配置され、中間ディレクトリファイル(存在する場合)がクリーンアップされます。 RStudioでのコンパイルと同じように。

26
Harry

A.rmdはR Markdown v2ドキュメントのように見えるため、knitr :: knit2html()ではなくrmarkdown :: render()を呼び出す必要があるようです。

3
Shicheng Guo