我有一个循环,它产生许多不同的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语法?
答案 0 :(得分:1)
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
。