我有一个由Access中的参数组成的系统,由R脚本读取,然后启动Rmarkdown报告。在Rmarkdown中,构建了Stata脚本,该脚本读取数据文件并创建由Access参数指定的图形。要将Stata图表添加到报表中,我必须将其存储为PNG文件,并在Rmarkdown代码中链接到此文件。最后,报告呈现为Word文件(使用knitr和Pandoc)。
在目前的设置中,我在报告中有几个地方可以调用图表。我可以为每个地方创建一个PNG文件,我知道文件名(由Access参数控制),我使用标准命令![](path/to/filename.png
链接到每个文件。这很正常。
下一个开发步骤是,在每个地方,我需要创建一个未知和不同数量的PNG文件(最多约20个文件)。我会在Stata做这件事。问题是链接到Rmd代码中的不同数量的文件。我还没有办法做到这一点,并且需要有关如何做的建议。
我对解决方案有一些想法,但我找不到实现它们的命令或语法。我已经阅读了Rstudio.com上的Rmarkdown简介和来自同一来源的Rmarkdown参考指南(5页)。我对R和Rmarkdown都很陌生,所以我可能忽视或不理解有一个解决方案。
或者,有人有其他建议吗?
答案 0 :(得分:0)
当然,你可以使用像
这样的循环```{r, results="asis"}
files <- list.files(path = '/path/to/your/pngdirectory/',
pattern = '\\.png', full.names = T)
for(f in files) cat(paste0('![](',f,')\n'))
```
如果要筛选某些png文件,可以将pattern
参数扩展为更复杂的正则表达式。例如,如果我只想要包含&#39; 2017-07-11&#39;在他们的名字我会做
list.files(path = '/Users/martin/Dropbox/Screenshots',
pattern = '.*2017-07-11.*\\.png', full.names = T)
其中.*
匹配任何字符。