我想以编程方式在我的.Rmd降价文档中包含大量图片。像
这样的东西```{r echo=FALSE}
cat("![](myfile_1.png)")
```
将无效,因为生成的.md
输出为
```
## ![](myfile_1.png)
```
我需要摆脱代码标记```
和前导##
。
是否可以直接从R块中注入markdown代码?
BTY:同样的问题也适用于HTML。在这里,从R块中注入HTML代码也非常有用。
答案 0 :(得分:11)
使用results ='asis'
意味着您不必弄乱钩子,注释等因为结果不被视为代码,而是降价(或者输出格式恰好是什么)
```{r myfile-1-plot, echo = F, results = 'asis'}
cat('\n![This is myfile_1.png](myfile1.png)\n')
```
将导致
![This is myfile_1.png](myfile1.png)
请注意,我使用新的行标记包装输出文本,以确保它位于单独的行上。
答案 1 :(得分:1)
假设您使用knitr
,则可以使用comment
选项:
```{r echo=FALSE, comment=""}
cat("![](myfile_1.png)")
```
您必须更改挂钩:
```{r echo=FALSE, comment=""}
knit_hooks$set(output = function(x,
options) x)
cat("![](myfile_1.png)")
```
如果您想再次渲染降价,请确保再次重置挂钩,一种方法是使用render_markdown()
。
```{r b, echo=FALSE, comment=""}
render_markdown()
a <- 1
```
答案 2 :(得分:1)
要在循环中使用,如果需要粘贴数据框中的一堆图片:
for(h in 1:nrow(file_names)){
image_file<-paste('\n![](', file_names[h],')\n',sep="")
cat('\n')
cat(image_file)
cat('\n')
}