搜索
查看: 596|回复: 0

[R] 慧美——R for data science 第20章 R Markdown

[复制链接]

39

主题

40

帖子

289

积分

中级会员

Rank: 3Rank: 3

积分
289
发表于 2018-11-28 17:15:31 | 显示全部楼层 |阅读模式
R for data science   第20章 R Markdown
20.1 简介
  • R Markdown 文档是完全可重用的,并支持多种输出形式,包括 PDF、Word、幻灯片等

  • R Markdown 文件的应用方式有 3 种。

    • 与决策者沟通交流,这部分人关注的是最终结论,而不是分析背后的代码。
    • 与其他数据科学家(包括未来的你)协作,这部分人关心的内容既包括最终结论,也包括得到结论的过程(也就是代码)。
    • 作为开展数据科学工作的一种环境,它是一种现代化的实验室记录工具,不但可以记录你的实际工作,还可以记录你的思考过程。

  • R Markdown 集成了一些 R 包和外部工具。

    • R Markdown 速查表
    • R Markdown 用户指南


20.2 R Markdown基础
  • 一个R markdown文件,扩展名为.Rmd的纯文本文件

    • 这个文件包含了 3 种重要的内容类型。

      • 两个 --- 之间的(可选)YAML 文件头
      • 两个 ``` 之间的 R 代码段。
      • 一些具有简单格式的文本,比如前面用 # 表示的文本标题,以及两个 _ 之间的斜体。
      • 如果想要生成包含所有文本、代码和输出的完整报告,可以点击 Knit 或按组合键Ctrl+Shift+K。还可以使用代码 rmarkdown::render("1-example.Rmd") 在程序中完成这个操作。报告会显示在查看器窗格中,并生成可以与他人分享的一个独立的 HTML 文件。



  • 在生成文档时,R Markdown 先将 .Rmd 文件发送给 knitr,knitr 会执行所有代码段,并创建一个新的 Markdown 文件(.md),其中包含所有代码和输出。然后 knitr 生成的 Markdown文件再由 pandoc 进行处理,并生成最终文件。这种两阶段工作流的优点是可以创建多种输出格式

20.3 使用Markdown格式化文本
  • .Rmd 文件中的文本是用 Markdown 语言写成的,Markdown 是用于格式化纯文本文件的一种轻量级语法,其设计思想就是使得文本既容易书写又容易阅读。
  • 如果忘记了某种语法,可以使用Help → Markdown Quick Reference 来获取帮助。

20.4 代码段
  • 要想在 R Markdown 文件中运行代码,你需要插入代码段。插入代码段的方法有 3 种

    • 使用组合键 Ctrl+Alt+I。
    • 使用编辑器工具栏上的 Insert 按钮。
    • 手工输入代码段标记符 {r} 和。
    • Ctrl+Shift+Enter,这个组合键可以运行代码段内的全部代码。我们可以将代码段看作一个函数,它是相对独立的,而且专注于实现某个特定任务。

  • 代码段选项

    • eval = FALSE禁止对代码进行求值。(很明显,如果代码不能运行的话,就不能生成什 么结果。)在显示示例代码或不通过每行注释禁用大段代码时,这个选项是非常有用的。
    • include = FALSE可以运行代码,但不会在最终文档中显示代码和结果。如果不想让 setup 代码出现在报告中,就可以使用这个选项。
    • echo = FALSE 禁止代码出现在最终报告中,但不会禁止结果。为不想看到 R 代码的人 们编写报告时,就可以使用这个选项。
    • message = FALSE 或 warning = FALSE 可以防止消息或警告出现在最终报告中。
    • results = 'hide' 可以隐藏文本输出;fig.show = 'hide' 可以隐藏图形输出。
    • error = TRUE 在代码出现错误时仍然可以生成最终报告。在报告的最终版中,我们很少需要包括出错信息,但在调试 .Rmd 文件时,出错信息是非常有用的。如果使用 R 进行 教学活动,并特意想要包括出错信息的话,这个选项是非常有用的。如果使用默认设置 error = FALSE,那么即使只有一个错误,文档生成也会失败。


  • 表格

    • 默认情况下,R Markdown 输出数据框和矩阵的格式与我们在控制台中看到的相同


  • 如果更喜欢用表格来显示数据,那么你可以使用 knitr::kable 函数。

  • R Markdown 在每次生成文档时都是完全从头开始的。因为这样可以确保不漏掉代码中的每一步重要计算。但是,如果有些计算需要使用 cache = TRUE时,R Markdown 会将代码段输出保存在磁盘上一个具有特殊名称的文件中。在此后的运行中,knitr 会检查代码是否进行了修改,如果没有修改,则继续使用缓存结果。
  • 必须谨慎使用这种缓存机制,因为 knitr 在默认情况下只检查代码,不检查代码的依赖关系。
  • 内联代码

    • 当向文本中插入数值时,format() 函数非常有用,你可以使用这个函数来设置 digits 的数值,避免打印出不必要的小数位,还可以设置 big.mark,从而使得数值更加易读。


20.5 排错
  • 为 R Markdown 文件排查错误是比较困难的,因为我们不再拥有交互的 R 语言环境
  • 我们必须尽力在交互会话中重现问题。重新启动 R,然后执行 Run all chunks(可以使用 Code 菜单,在 Run Region 菜单项下执行 Run All,也可以使用组合键 Ctrl+Alt+R)。

  • R Markdown 的工作目录就是文件所在的目录。你可以在代码段中加入 getwd() 函数,查看工作目录是否符合预期

20.6 Y AML文件头
  • YAML设计用于表示容易被人类读写的层次化数据。R Markdown 使用 YAML 来控制很多输出细节。

  • YAML 文件头:文档参数和参考文献。

    • 文档参数。R Markdown 文件中可以包含在生成报告时进行设置的一个或多个参数。如果想要重新生成报告,但对多个关键输入使用与原来不同的值,那么这些参数就非常有用了。

      • 在 RStudio 中,你可以点击 Knit 下拉菜单中的 Knit with Parameters 菜单项来完成设置参数、生成报告和预览报告等工作。
      • 如果需要生成多个这种带参数的报告,可以使用一个 params 列表来调用 rmarkdown::render() 函数。这个函数与 purrr::pwalk() 函数组合使用时功能非常强大。

    • 参考文献与引用。pandoc 可以自动生成引用和各种风格的参考文献。
    • 你可以使用多种常用的参考文献格式,如 BibLaTeX、BibTeX、endnote 和 medline。在生成最终文件时,R Markdown 会创建参考文献并将其追加到文件的最后。参考文献中会包含来自于参考文献文件中被引用的所有文献,但不会包含小节标题。







上一篇:gdc-client安装时报错
下一篇:bed文件转成BigWig的方法
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-9-18 20:30 , Processed in 0.037704 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.