Emp*_*cer 7 r knitr r-markdown
我试图让我的代码更加模块化:数据加载和一个脚本,在另一个分析等清洁如果我是,使用R脚本,这将是调用一个简单的问题source在data_setup.R里面analysis.R,但我想记录我在Rmarkdown文档中做出的数据设置和分析决策.所以我尝试写一些排序的source_rmd功能,让我从源代码data_setup.Rmd到analysis.Rmd.
如何获取R markdown文件的答案,如`source('myfile.r')`?如果有任何重复的块名称(由于命名的块setup在Rstudio的笔记本处理中具有特殊行为,因此无法解决).如何将两个RMarkdown(.Rmd)文件合并为一个输出?想要整合整个文档,而不仅仅是一个代码,还需要唯一的块名称.我已经尝试使用knit_expand建议在生成动态[R降价块,但我的名字在双大括号的变量块,而且我真的很喜欢的方式,使这个方便我colaborators使用为好.并knit_child按照如何嵌套编织调用中的建议使用以修复重复的块标签错误?仍然给我重复的标签错误.
Emp*_*cer 14
经过一些进一步的搜索,我找到了解决方案。knitr 中有一个包选项,可以设置它来更改处理重复块的行为,在它们的标签后附加一个数字,而不是因错误而失败。参见https://github.com/yihui/knitr/issues/957。
要设置此选项,请使用options(knitr.duplicate.label = 'allow').
为了完整起见,我编写的函数的完整代码是
source_rmd <- function(file, local = FALSE, ...){
options(knitr.duplicate.label = 'allow')
tempR <- tempfile(tmpdir = ".", fileext = ".R")
on.exit(unlink(tempR))
knitr::purl(file, output=tempR, quiet = TRUE)
envir <- globalenv()
source(tempR, local = envir, ...)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2165 次 |
| 最近记录: |