6

我想以编程方式在我的 .Rmd 降价文档中包含很多图像。就像是

```{r echo=FALSE}
cat("![](myfile_1.png)")
```

将不起作用,因为结果.md输出是

```
## ![](myfile_1.png)
```

我需要去掉代码标签```和前导##. 是否可以选择从 R 块中直接注入降价代码?

BTY:同样的问题也适用于 HTML。在这里,从 R 块中注入 HTML 代码也会非常有帮助。

4

3 回答 3

13

使用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)

请注意,我用新的行标记包装了输出文本,以确保它位于单独的行上。

于 2012-06-19T12:22:07.860 回答
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)")
```

当您想再次渲染 markdown 时,请确保再次重置您的钩子,一种方法是使用render_markdown().

```{r b, echo=FALSE, comment=""}
render_markdown()
a <- 1
```
于 2012-06-19T09:34:35.647 回答
1

要在循环中使用,如果您需要从数据框中粘贴一堆图片:

for(h in 1:nrow(file_names)){
   image_file<-paste('\n![](', file_names[h],')\n',sep="") 
   cat('\n')
   cat(image_file)
   cat('\n')
}
于 2017-09-18T19:50:51.387 回答