您有了一些代码,数据和一个不错的结果,现在需要与您的协作者(或主管)进行交流了。你该怎么做?
在本指南中,我们想向您展示如何使用现在提供的一些奇妙,免费的工具和软件包编写美观,可重复的报告。这些工具将帮助您交流科学知识,并希望您再也不会复制和粘贴R输出。
首先,让我们回顾一下进行良好分析的关键组成部分:
数据
用于分析数据的代码
代码生成的图表
文本,解释图形和结果,并描述方法。
这些元素以报告的形式合并在一起。作为科学家,我们写了许多大小报告。像纸张这样的大型报告很少见,但是我们一直在编写较小的报告。这些包括在项目生命周期内编写的所有初步结果,每周更新,带有数字的电子邮件以及自己的笔记。传统上,大多数生物学家会在R中执行阶段2和3,然后启动Word或Powerpoint并复制粘贴阶段4的所有内容。这是可行的,但是这种方法有一些缺点:
浪费大量时间,加上复制和粘贴很烂
您的解释与代码分开
Word不提供语法高亮显示功能,因此很难读取以这种方式显示的代码,
在版本控制下无法很好地跟踪Word文档
如果不进行所有复制和粘贴操作,则无法重新生成报告。
现在有一个更好的方式来写报告,用包 knitr,并称之为通用文档转换程序 pandoc。现在还可以将您的解释(阶段4)与R代码(阶段2)和结果(阶段3)结合起来,以生成美观,独立且可重复的报告。这些共同为希望节省时间和进行可重复研究的科学家提供了强大的工具集。
为什么要使用Markdown?
此Markdown的目标是“ 在可行的情况下尽可能易于阅读和编写 ”。实际上,它是应用于纯文本文档的一组简单的格式设置命令,可以轻松地将其转换为格式精美的html,pdf或word docs。但不像 html, rtf, latex,或几乎任何其他标记文本,Markdown是非常具有可读性。并且由于使用 纯文本,因此文件很小,并且可以在各种设备上轻松编辑。
作为科学家,我们不仅撰写论文,而且还撰写笔记,代码,电子邮件,提醒,待办事项列表,博客文章等。不仅如此,我越来越多地使用Markdown进行笔记和报告写作。
因为它是纯文本,所以您可以在任何程序中编写Markdown。但是,最好的测试编辑器还允许您以格式化的html格式查看代码。
Markdown文档通常以extension .md或 结尾 .Markdown。
RMarkdown
Markdown被证明非常有用,以至于许多不同的编码小组都采用了它,但同时也增加了自己的“风味”。到目前为止,我们了解以下内容:
原始Markdown
github风格的Markdown,
PandocMarkdown,以及
multiMarkdown。
这些中的每一个都提供一组稍微不同的功能。
RStudio实现了一种称为“ RMarkdown”(或RMarkdown)的东西。此外,它包括“代码块”,这些代码块将由R运行。这些代码如下所示:
{r}mean(1:10) # or some other code
产生:
mean(1:10) # or some other code
## [1] 5.5
Markdown会像这样渲染:
mean(1:10) # or some other code## [1] 5.5
R Markdown在Rstudio中使用,并允许将R代码与文本段一起编入。以R Markdown编写的文件具有扩展名 .Rmd。
将R Markdown视为可以编译 为上述Markdown变体之一的东西 。
knitr 报告
该 knitr 软件包的编写是在单个文档中结合了RMarkdown和R代码的元素 。从一个例子开始。
打开Rstudio并安装Knitr软件包
install.packages(knitr)然后打开 此演示文件 并单击 knit HTML 按钮
该文件是用RMarkdown编写的,包括一些文本和代码。
点击可以 knit HTML 做几件事
它运行文件中的所有代码
它会生成一个Markdown文件,包括原始文档的位及其输出。
它将Markdown文档转换为html。
您还可以使用以下命令从控制台制作文档:
library(knitr)library(Markdown)knit(“example.Rmd”) # 生成 the md 文件MarkdownToHTML(“example.md”, “example.html”) # 转换 md 文件到 html
注意,要使此代码正常工作,示例文件必须位于您的工作目录中,或者您需要提供RMD文件的路径: