【问题标题】:How to automatically include filepath in R Markdown document如何在 R Markdown 文档中自动包含文件路径
【发布时间】:2018-11-28 05:43:45
【问题描述】:

我在 R Markdown 文档中记录了我的工作的各个部分。我有许多项目在进行中,但它们往往重叠,因此从阅读文档的来源以及将在我的系统中归档的位置来看并不明显。

我可以通过插入以下内容自动在文档中包含归档该文件夹的文件夹:

```{r, echo=FALSE}
 print(getwd())
```

但我真正想做的是自动包含文件名以及文件夹的路径。 MS Word中有这样的功能,但是在R Markdown中可以吗?

这些是仅为我个人使用而创建的文档,因此存储完整的文件路径不是问题。请不要告诉我我想要的与再现性不一致。

【问题讨论】:

  • 如果您使用 rstudio 项目管理您的项目,请将鼠标光标放在打开的文件选项卡上,它将显示文件的绝对路径。
  • 再现性有很多层次。一种是将数据和代码发送给另一个人。但另一方面,几周、几个月或几年后由创建者重新运行相同的代码同样重要。不确定解决方案是否会无脑,但使用here::here 可能会在某种程度上有效?

标签: r r-markdown knitr


【解决方案1】:

函数knitr::current_input()将返回当前R Markdown文件的名称as explained here。您可以将其与工作目录结合起来,如下所示:

knitr::current_input(dir = TRUE)

请注意,这只有在您编织文档时才能正常工作。如果您尝试在 RStudio 中运行它,它将返回 NULL。

如果您想要一种简单的方法将其包含在您的分析中,您可以将文件路径作为副标题添加到您的文档中,方法是将其包含在您的 YAML 中:

---
title: Your Document
subtitle: "`r knitr::current_input(dir = TRUE)`"
output: word_document
---

【讨论】:

  • 非常感谢。这很好用。 (不过,我对您对我的问题的编辑感到有些困惑;它们似乎纯粹是风格)
  • 我推荐knitr::current_input(dir = TRUE) 而不是file.path(getwd(), ...),因为getwd() 受用户更改的影响。
  • 谢谢@YihuiXie!我当时认为这有点草率,但我没想到要检查文档。更新了答案
猜你喜欢
  • 2016-07-31
  • 2017-07-09
  • 2018-04-30
  • 2017-11-27
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
相关资源
最近更新 更多