CRAN 任务视图:可重复研究

维护者John Blischak、Alison Hill、Ben Marwick、Daniel Sjoberg、Will Landau
联系方式jdblischak at gmail.com
版本2024-02-20
网址https://CRAN.R-project.org/view=ReproducibleResearch
源代码https://github.com/cran-task-views/ReproducibleResearch/
贡献欢迎对本任务视图提出建议和改进,可以通过 GitHub 上的问题或拉取请求,或通过电子邮件发送给维护者地址。有关更多详细信息,请参阅 贡献指南
引用John Blischak、Alison Hill、Ben Marwick、Daniel Sjoberg、Will Landau (2024)。CRAN 任务视图:可重复研究。版本 2024-02-20。网址 https://CRAN.R-project.org/view=ReproducibleResearch。
安装可以使用 ctv 包自动安装本任务视图中的包。例如,ctv::install.views("ReproducibleResearch", coreOnly = TRUE) 安装所有核心包,或 ctv::update.views("ReproducibleResearch") 安装所有尚未安装和更新的包。有关更多详细信息,请参阅 CRAN 任务视图计划

可重复研究的目标是将特定指令与数据分析和实验数据联系起来,以便可以重新创建、理解和验证学术成果。用于此目的的 R 包可以大致分为几组:文学编程、管道工具包、包可重复性、项目工作流程、代码/数据格式化工具、格式转换器和对象缓存。

现任维护者感谢 Max Kuhn 最初创建和维护本任务视图。

文学编程

R 通过使用内容和数据分析代码相结合的文档来促进可重复研究。Sweave 函数(位于基本 R utils 包中)和 knitr 包可用于混合主题内容和 R 代码,以便单个文档定义内容和分析。 brewR.rsp 包包含将 R 代码嵌入到各种标记中的替代方法。

文学编程资源最好按文档类型/标记语言进行组织

LaTeX

Sweaveknitr 都可以处理 LaTeX 文件。 lazyWeave 可以从头开始创建 LaTeX 文档。 RweaveExtra 提供了 Sweave 驱动程序,其中包含其他选项来控制处理和输出。

可以使用 knitrrmarkdown 包(以及 pandoc)使用 LaTeX beamer 类创建幻灯片。

对象转换函数

其他工具

HTML

knitr 包可以直接处理 HTML 文件。Sweave 也可以通过 R2HTML 包来处理 HTML 文件。 lazyWeave 可以从头开始创建 HTML 格式的文档。

对于 HTML 幻灯片,可以使用 knitrrmarkdown 包(以及 pandoc)来创建幻灯片,使用 ioslidesreveal.jsSlidyremark.js(来自 xaringan 包)。

blogdownbookdowndistill 包可以创建完整的网站。

对象转换函数

杂项工具: htmltools 提供了各种用于处理 HTML 的工具。 tufterhandout 可以创建 Tufte 风格的手册。

Markdown

knitr 包可以无需任何帮助处理 markdown 文件。 markdownrmarkdown 包提供了用于处理此格式文档的通用工具。 lazyWeave 可以从头开始创建 markdown 格式的文档。 此外,ascii 包可以将 R 对象写入 AsciiDoc 格式。

对象转换函数

杂项工具: tufterhandout 可以创建 Tufte 风格的手册。 kfigr 允许在 markdown 文档中进行图形索引。

Microsoft/LibreOffice 格式

officer(以前称为 ReporteRs,在此之前称为 R2DOCX)包可以创建 docxpptx 文件。 R2wd(仅限 Windows)也可以从头开始创建 Word 文档,而 R2PPT(同样仅限 Windows)可以创建 PowerPoint 幻灯片。 rtf 包对富文本格式文档执行相同的操作。 openxlsx 包创建 xlsx 文件。 readODS 包可以读取和写入 Open Document Spreadsheets。

对象转换函数

管道工具包

管道工具包 有助于维护和验证可重复性。它们将计算输出与底层代码和数据同步,并告知用户何时一切更新。换句话说,它们提供了具体证据,证明结果可以从起始材料中重新创建,并且数据分析项目不需要从头开始重新运行。 targets 包就是这样一个管道工具包。它类似于 GNU Make,但它是面向 R 的。

包可重复性

R 有各种工具可以确保可以为分析要求特定的包版本。例如,renv 包在特定于项目的目录中安装包,记录“锁定文件”中当前包版本的“快照”,并在不同的机器上恢复包设置。

项目工作流程

成功完成数据分析项目通常需要远远超出统计和可视化。随着项目的发展,有效地管理代码、数据和结果有助于减少压力和错误。以下“工作流程”包通过管理项目基础设施和/或促进可重复的工作流程来帮助 R 程序员。

工作流程实用程序包提供单一用途函数来实现项目基础设施或解决特定问题。例如,usethis::use_git() 初始化一个 Git 存储库,忽略常见的 R 文件,并提交所有项目文件。

工作流程框架包提供了一个组织良好的目录结构和辅助函数,以在项目开发过程中提供帮助。例如,ProjectTemplate::create.project() 创建了一个包含多个子目录的组织良好的设置,而 ProjectTemplate::run.project() 则执行保存在 src/ 子目录中的每个 R 脚本。

格式化工具

formatRstyler 可用于格式化 R 代码。

highlighthighr 可用于为 R 代码着色。

humanFormatlubridateprettyunitsrprintf 包含用于更好地格式化数据的函数。

格式转换器

pander 可用于将 R 对象渲染为 Pandoc 的 markdown。 knitr 具有函数 pandoc,可以调用已安装的 Pandoc 版本来在 Markdown、HTML、LaTeX、PDF 和 Word 等格式之间转换文档。 tth 促进 TeX 到 HTML/MathML 的转换。

对象缓存包

在使用 Sweaveknitr 时,如果文档将被重新处理(例如在调试期间),则对耗时代码块的结果进行缓存可能是有利的。 knitr 促进对象缓存,Bioconductor 包 weaver 可与 Sweave 一起使用。

用于促进缓存/归档的非文学编程包是 archivistR.cachereproduciblestorr

CRAN 包

核心HmiscknitrR2HTMLrmsxtable.
常规animation, archivist, ascii, bibtex, blogdown, bookdown, brew, cabinets, checkpoint, dateback, distill, drake, DT, exams, exreport, flextable, flowr, formatR, formattable, groundhog, gt, gtsummary, here, highlight, highr, htmlTable, htmltools, HTMLUtils, humanFormat, huxtable, hwriter, kfigr, knitcitations, knitLatex, latex2exp, lazyWeave, liftr, lubridate, madrat, makeit, makepipe, makeProject, markdown, memisc, miniCRAN, mschart, NMOF, officer, openxlsx, orderly, packrat, pander, papeR, parameters, pharmaRTF, prettyunits, prodigenr, projects, ProjectTemplate, quantreg, R.cache, R.rsp, R2PPT, r2rtf, R2wd, rang, rapport, rcompendium, readODS, RefManageR, renv, repo, RepoGenerator, reportfactory, reporttools, represtools, reproducible, Require, rmarkdown, rprintf, rtf, RweaveExtra, sparktex, stargazer, starter, storr, styler, suRtex, switchr, table1, tables, TAF, targets, texreg, tikzDevice, tinyProject, trackdown, tth, tufterhandout, unrtf, usethis, worcs, workflowr, xaringan, ztable.

相关链接

其他资源