如何解决交互模式下的自引用Rmd文件
我对将元数据附加到保存的对象感兴趣,包括保存数据的脚本。为此,我想在脚本本身中捕获脚本的名称。
当我有一个如下所示的Rmarkdown文档并进行编织时,代码块将生成生成它的脚本的名称。这正是我想要的,但是,这仅在文档被编织时才有效。如果我以交互方式在Rstudio中执行块,我也想这样做。
---
title: "test"
author: "me"
date: "21/09/2020"
output: html_document
---
```{r}
if (interactive()) {
# Get the same as non-interactive version?
} else {
as.character(sys.call(1))[2]
}
```
有人知道如何在交互式会话中捕获当前Rmarkdown脚本的名称吗?
解决方法
rstudioapi::getSourceEditorContext()
为您提供有关在RStudio源代码编辑器中打开的当前文件的信息(列表)。文件的路径存储在列表的path
元素中。
顺便说一句,对于非交互式R会话,knitr::current_input()
为您提供了要编织的源文档的路径(不过,您的sys.call(1)
方法听起来很聪明)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。