如何将R Markdown转换为HTML? 也就是说,Rstudio 0.96中“Knit HTML”是做什么的?
在Rstudio 0.96的R Markdown文件上按下“编织HTML”时将运行什么命令?
我的动机是,我可能想要在另一个文本编辑环境中运行相同的命令,或者我可能想将这个命令组合到一个更大的makefile
。
将Sys.sleep(30)
放在一个块中,您将清楚地看到RStudio调用了哪些命令。 基本上他们是
-
library(knitr); knit()
library(knitr); knit()
得到降价文件; - RStudio具有内部function来将降价转换为HTML;
第二步在下一个markdown
软件包中会更加透明。 目前,您可以使用knitr::knit2html('your_file.Rmd')
来获取与RStudio提供的类似的HTML文件。
基本脚本
所以现在R markdown
软件包已经发布了 ,下面是一些代码来将Knit的function复制到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 markdown文件的名字。 请注意,我对browseURL行不是100%自信(因此我的问题是关于在Web浏览器中打开文件 )。
markdownToHTML选项
markdownToHTML
的好处在于HTML的创build方式有很多选项(请参阅?markdownHTMLOptions
)。 例如,如果你只想要一个没有所有头信息的代码片段,你可以写:
markdownToHTML('test.md', 'test.html', options='fragment_only')
或者如果您不喜欢硬包装(即,在降价源中存在单个手动换行符时插入换行符),则可以省略“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'))
Makefile文件
这也可以使用Rscript -e
(例如, 类似的东西 )添加到makefile中。 下面是一个基本的makefile文件,其中test
表示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')
非常简单的命令行方法从knitr在一个巧妙的 :
R -e "rmarkdown::render('knitr_example.Rmd')"
这需要使用install.packages(rmarkdown)
来安装rmarkdown
,并且安装了install.packages(rmarkdown)
(显然它与Rstudio一起提供,请参阅Knithell中的knitr以获取更多详细信息)。
到目前为止,当我使用它时,它很好地把所有的图表放在HTML文件中,而不是graphics目录中的图像,并清除任何中间文件; 就像在RStudio中编译一样。
看来你应该调用rmarkdown :: render()而不是knitr :: knit2html(),因为a.rmd似乎是一个R Markdown v2文档。