我有一个循环,它产生许多不同的HTML R Markdown,它们具有相同的变量但结果不同(基于单个.Rmd)。
我想插入一个外部网站的超链接,其中唯一改变的是我正在处理的每个主题的名称。为此,需要有能够在整个循环中改变的东西。然而,R Markdown的链接结构只允许直接链接。
循环脚本呈现文件:
names <- c(name1, name2, name3)
for (name in names){
rmarkdown::render('document.Rmd',
output_file = paste("document", name, ".html", sep=''))
}
对于documentname1.html,后面的超链接代码是:
[External Website](http://website.com/name1.html)
对于documentname2.html,后面的超链接代码是:
[External Website](http://website.com/name2.html)
等等。
如何创建URL引用我的Rmd基本文件中的对象的链接结构,或者是否有替代方法,例如可用于此案例的HTML语法?
与sed
直截了当的方式:
library(rmarkdown)
for(name in names) {
system(paste0("sed \'s/MYNAME/", name, "/g\' ", "document.Rmd > foo.Rmd"))
render("foo.Rmd", output_file = paste0("document", name, ".html"))
unlink("foo.Rmd")
}
在你的参考document.Rmd
有[External Website](http://website.com/MYNAME.html)
并在每次迭代使用MYNAME
替换name
与sed
。