最后,考虑到我的情况,我决定让我的论文研究更接近于使其成为尽可能好的可重复研究的目标。由于目前我不使用LaTeX
我的论文报告(尽管我正在考虑这个选项),我相信这knitr
是最好的方法。
该软件项目实施我的论文研究(数据分析)的实证部分,正在编写R
。该项目在目录结构中包含多个文件,这对于科学工作流程来说是相当典型的(顶级子目录:)analysis, cache, data, figures, import, prepare, present, results, sandbox, utils
。
一般来说,我已经阅读了很多关于knitr
用于自动生成报告和可重复研究的信息(包括示例)。但是,我对大量的配置选项感到有些不知所措,更重要的是,仍然对在像我这样的项目中使用的最佳/正确/最佳方法knitr
感到困惑,包含多个文件和目录。特别是,我对在不对模块进行太多修改的情况下转换 现有代码库的框架和步骤的建议感兴趣。R
例如,让我们考虑一下我的模块,与探索性数据分析 (EDA)相关。我当前的 EDA 工作流程包括:
初步数据,从原始原始数据转换而来(位于“data/transform”子目录中);
模块“eda.R”,位于“分析”目录中;
目录“results/eda”,我当前的代码在其中生成单变量和多变量 EDA 的图形(SVG 文件),以及具有相同图形信息的单个文档报告(PDF 文件)(生成的描述性统计数据正在生成为控制台输出,运行“eda.R”脚本时)。
为了过渡到knitr
基于 - 的项目,我创建了文件“eda-report.Rmd” ,其中包含R Markdown
用于设置本地knitr
选项的语句,包括read_chunk("eda.R")
. 我的理解是,现在我需要根据我的 EDA 工作流程将R
“eda.R”中现有的代码块定义为knitr
块,然后调用这些命名块。
问题:
这是正确的方法吗?knitr
在设置项目路径、使用source()
、分组一些地块gridExtra
、防止潜在问题方面使用的最佳实践是什么?在我看来,除了“eda-report.Rmd”之外,我还需要创建另一个 R 模块,它将.Rmd
通过knitr
. 如果是,我应该使用哪个调用:rmarkdown::render()
或者knitr::knit()
(当我RStudio
用于开发时,我希望我的代码独立于开发环境)?
更新 1(附加问题):
为什么通过“Knit HTML”按钮处理文件会产生.Rmd
文档,而通过命令处理会产生文件,但不是,尽管存在指令?RStudio
HTML
Makefile
Rscript -e 'library("knitr"); knit("eda-report.Rmd")'
.md
HTML
output: html_document
谢谢您阅读此篇!您的建议将不胜感激!