首页 文章

将研究项目过渡到基于编织的设置

提问于
浏览
0

最后,考虑到我的情况,我决定让我的_590280更接近使它成为好的目标 reproducible research . 由于目前我没有使用 LaTeX 作为我的论文报告(虽然我正在考虑这个选项),我相信 knitr 是最好的方法 .

实施我的论文研究(数据分析)的实证部分的软件项目正在 R 中编写 . 该项目包含目录结构中的多个文件,这对于科学工作流程来说非常典型(顶级子目录: analysis, cache, data, figures, import, prepare, present, results, sandbox, utils ) .

我已经阅读了大量有关使用 knitr 进行自动生成报告和可重复研究的信息(包括示例) . 但是,我有点被大量的配置选项所淹没,更重要的是,在我这样的项目中使用 knitr 仍然感到困惑,包含 multiple files and directories . 特别是,我对 transitioning 现有代码库的框架和步骤的建议感兴趣,而 R 模块中没有太多修改 .

作为 example ,让我们考虑一下与探索性数据分析(EDA)相关的模块 . 我目前的EDA工作流程包括:

  • 初步数据,从原始原始数据转换(位于“数据/转换”子目录中);

  • 模块“eda.R”,位于“分析”目录中;

  • 目录“results / eda”,其中我的当前代码生成单变量和多变量EDA的数字(SVG文件),以及具有相同图形信息的单个文档报告(PDF文件)(生成的描述性统计信息正在生成为运行“eda.R”脚本时的控制台输出 .

为了转换到基于 knitr 的项目,我创建了文件"eda-report.Rmd",其中包含 R Markdown 语句,用于设置本地 knitr 选项,包括 read_chunk("eda.R") . 我的理解是,现在我需要在"eda.R"中将现有的 R 代码块定义为 knitr 块,然后根据我的EDA工作流程调用这些命名的块 .

Questions:

这是正确的方法吗?使用 knitr 设置项目路径的最佳实践是什么,使用 source() ,通过 gridExtra 对一些图表进行分组,以防止潜在问题?在我看来,除了"eda-report.Rmd"之外,我还需要创建另一个R模块,它将通过 knitr 启动 .Rmd 文件的处理 . 如果是,我应该使用哪个调用: rmarkdown::render()knitr::knit() (当我使用 RStudio 进行开发时,我希望我的代码独立于开发环境)?

UPDATE 1 (Additional question):

为什么在 RStudio 中通过"Knit HTML"按钮处理 .Rmd 文件会产生 HTML 文档,而通过 Makefile 命令 Rscript -e 'library("knitr"); knit("eda-report.Rmd")' 处理产生 .md 文件,但不产生 HTML ,尽管存在 output: html_document 指令?

Thank you for reading this! Your advice will be greatly appreciated!

1 回答

  • 2

    为了将您的工作流程转换为使用knitr,我建议您应该从最有用的位开始,而不是尝试编写可重现的最后一段代码 .

    由于knitr是一个报告生成工具,因此最好的起点是将您的论文写在knitr中 . (你提到你现在不使用LaTeX . 那很好:knitr也支持AsciiDoc,我发现它更容易编写 . 如果你的论文没有很多方程式或表格,你也可以放弃写入降价或纺织,更容易 . )

    同样,knitr适用于您可能编写的任何报告或论文 .

    要获得更高级的用法,您可以使用knitr创建演示文稿 . (我有时会编写xhtml Slidy演示文稿 . )

    我不打扰的是试图编织所有的探索性数据分析 . 大多数事情你都值得付出额外的努力 . 尽可能快地集中精力进行探索,然后再编织有趣的部分 . 同样,数据清理通常不那么有趣,因此评论良好的代码通常就足够了 .


    为了回答你关于目录结构的问题,我的偏好是因为knitr报告是针对最终输出的,所以它们应该远离更糟糕的探索性工作 . 也就是说,他们可以拥有自己的目录,并生成自己的数字副本 .

相关问题