English · PDF 461
d 依赖于 c 和 b,并且 b 和 c 都依赖于 a。让每个代码块打印 lubridate::now(),设置 cache = TRUE,然后验证你对缓存的理解。R Markdown 文档的故障排除可能颇具挑战性,因为你不再处于交互式 R 环境中,需要学习一些新技巧。你应该始终尝试的第一件事是在交互式会话中重现问题。重启 R,然后“运行所有代码块”(可以从 Code 菜单的 Run 区域中选择,或使用快捷键 Ctrl-Alt-R)。如果幸运的话,这将重现问题,你就可以交互式地弄清楚发生了什么。
如果这没有帮助,那么你的交互式环境和 R Markdown 环境之间一定存在某些差异。你需要系统地探索各种可能性。最常见的差异是工作目录:R Markdown 文档的工作目录是它所在的目录。通过包含以下内容来检查工作目录是否符合你的预期 getwd() 在代码块中。
接下来,头脑风暴出所有可能导致这个 bug 的原因。你需要系统地检查它们在你的 R 会话和 R Markdown 会话中是否一致。最简单的方法是设置 error = TRUE 在引发问题的代码块上,然后使用 print() 和 str() 来检查设置是否符合你的预期。
你可以通过调整 YAML 头部的参数来控制许多其他“整篇文档”的设置。你可能想知道 YAML 代表什么:它是“yet another markup language(又一种标记语言)”的缩写,其设计目的是以易于人类读写的方式表示分层数据。R Markdown 使用它来控制输出的许多细节。这里我们将讨论其中两个:文档参数和参考文献。