搜索
查看: 817|回复: 0

[R] 慧美——R for data science 第22章 R Markdown输出类型

[复制链接]

39

主题

40

帖子

295

积分

中级会员

Rank: 3Rank: 3

积分
295
发表于 2018-11-29 08:54:36 | 显示全部楼层 |阅读模式
R for data science    第22章   R Markdown输出类型

22.1 简介
  • R Markdown 可以生成 HTML 文档。

  • 设置 R Markdown 文档的输出类型的方式有 2 种。
    • 修改 YAML 文件头可以进行永久性设置。


title:"Viridis Demo"
output:html_document
  • 手动调用 rmarkdown::render() 函数可以进行临时性设置。
    rmarkdown::render(
          "diamond-sizes.Rmd",
          output_format="word_document"
    )
  • RStudio 中的 knit 按钮可以按照 output 域中列出的第一种格式来输出文件。点击 knit 按钮旁的下拉菜单,也可以生成其他相应格式的输出。

22.2 输出选项
  • 每种输出类型对应一个 R 函数,使用 foo 或 pkg::foo 的函数调用形式都可以。如果省略pkg,R 会默认使用 rmarkdown 包。

  • 如果不想使用默认参数值,可以使用扩展的 output 域。例如,如果想要生成一个带有浮动表格内容的 html_document 文档,可以设置如下
    output:
          html_document:
            toc:true
            toc_float:true
  • 可以提供一个格式列表,以生成多种输出
    output:
          html_document:
    toc:true
            toc_float:true
          pdf_document:default
22.3 文档
  • pdf_document 可以使用 LaTeX(一种开源的文档排版系统)生成 PDF 文档。LaTeX 需 要安装,如果没有安装,RStudio 会提醒你。
  • word_document 可以生成 Microsoft Word 文档(.docx)。
  • odt_document 可以生成 OpenDocument Text 文档(.odt)。
  • rtf_document 可以生成 Rich Text Format 文档(.rtf)。
  • md_document 可以生成 Markdown 文档。这种文档本身不是很有用,但你可以将其与其
    他系统结合起来使用,如 CMS 系统或实验室 wiki。
  • github_document 是 md_document 的一种定制版本,前者生成的文档可以在 GitHub 上分享。

22.4 笔记本
  • 笔记本文件是由 html_document 的变体 html_notebook() 函数生成的。
    • 两种函数生成的文件在格式上非常相似。
    • 目的不同。
      • html_document 主要用于与决策者进行沟通
      • 笔记本的主要用途则是与其他数据科学家协同工作。

    • HTML 输出文件的使用方式也不相同。
      • 两种 HTML 输出文件都会包含全部结果。
      • 笔记本中还包括完整的源代码。
      • 这意味着我们可以通过两种方式使用由 html_notebook() 生成的 .nb.html 文件。



  • 如果出现了修改文件的需求,是时候学习 Git 和 GitHub 了。
    • 需要同时使用 html_notebook 和 github_document 两种输出形式。


22.5 演示文稿
  • R Markdown 也可以生成演示文稿。
    • 可以自动将 R 代码的结果插入演示文稿
    • 制作演示文稿的方法是将内容分为多个幻灯片,在每个一级标题 (#)或二级标题(##)处开始一个新幻灯片。你也可以不使用标题来划分幻灯片,而是通 过插入一条水平分隔线(***)来创建一张新的幻灯片。

  • R Markdown 可以生成 3 种内置格式的演示文稿
    • ioslides_presentation
      ioslides 格式的 HTML 演示文稿。
    • slidy_presentation
      W3C Slidy 格式的 HTML 演示文稿。
    • beamer_presentation
      LaTeX Beamer 格式的 PDF 演示文稿。

  • 其他 R 包提供的另外 2 种常用的演示文稿格式
    • revealjs::revealjs_presentation
      reveal.js 格式的 HTML 演示文稿。需要安装 revealjs 包。
    • rmdshower
      提供了 shower 演示引擎的一个包装器。


22.6 仪表盘
  • 仪表盘是沟通大量数据的一种快速而又直观的有效方法。flexdashboard 包可以非常轻松地使用 R Markdown 文件来创建仪表盘,它确定了使用标题控制仪表盘布局的约定。
    • 每个一级标题(#)都可以在仪表盘中创建一个新页。
    • 每个二级标题(##)都可以创建一个新列。
    • 每个三级标题(###)都可以创建一个新行。

  • flexdashboard 还提供了一些简单工具,用于创建工具栏、标签页、输入框和标尺。

22.7 交互元素
  • HTML 格式(文档、笔记本、演示文稿或仪表盘)的所有文件都可以包含可交互组件。
  • htmlwidgets
    • HTML 是一种可交互的格式,要想利用这种交互性,你可以使用 htmlwidges,这是能够生成 HTML 可视化元素的一组 R 函数。
    • htmlwidgets 的优势是,无须了解任何关于 HTML 和 JavaScript 的知识就可以使用它们。因 为所有细节都封装在包中,所以根本不需要关心细节。
      • 以下各包都可以提供 htmlwidgets。
        • dygraphs 可以实现交互式的时间序列可视化。
        • DT 可以实现交互式表格。
        • rthreejs 可以实现交互式三维图表。
        • DiagrammeR 可以实现示意图(如流程图和简单的节点关联图)。


    • htmlwidgets 提供了客户端的交互性——所有交互都发生在浏览器中,与 R 无关。这种方式 有很明显的优点,因为你可以自由地分发 HTML 文件,不用考虑与 R 的连接。但这种方 式的基本局限性在于,所有功能都要依靠 HTML 和 JavaScript 来实现。

  • Shiny
    • 实现交互性的另一 种方式是使用 Shiny,这个包可以使用 R 代码创建交互元素,而不用依靠 JavaScript
    • 如果想在 R Markdown 文档中调用 Shiny 代码,需要在文件头中添加 runtime::shiny。然后我们可以使用“输入”函数向文档中添加交互元素


22.8 网站
  • 可以使用 R Markdown 生成一个完整的网站。
    • 将你的 .Rmd 文件放进一个单独的目录。index.Rmd 就可以作为网站的主页。
    • 添加一个名为 _site.yml 的 YAML 文件来提供站点导航。
    • 运行 rmarkdown::render_site() 函数来建立 _site 目录,这个目录中包含了一个独立静态网 站所需的所有文件。
    • 你还可以使用 RStudio Project 来建立网站目录,RStudio 会在 IDE 中 添加一个 Build 标签页,你可以使用这个标签页来建立和预览自己的站点。


22.9 其他类型
  • bookdown 包可以使得编写图书更加容易。
  • prettydoc 包提供了具有多个漂亮主题的轻量级文档格式。
  • rticles 包可以将 R Markdown 文件编译成一些科学杂志要求的特殊格式。





上一篇:慧美——R for data science—第23章 R Markdown工作流
下一篇:慧美——R for data science 第15章 向量
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-11-20 00:52 , Processed in 0.029176 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.