R 代码块如何循环使用knit_扩展打印结果和标题?

R 代码块如何循环使用knit_扩展打印结果和标题?,r,loops,markdown,knitr,R,Loops,Markdown,Knitr,我读过类似的问题(,还有),但没能让它起作用,可能是因为循环中的列表中混合了grob和rastergrob。本质上,我有一个嵌套的for循环来打印列表中的对象,并希望使用标记为对象创建标题。我将使用带有子模板的knit_扩展方法。如果我设置results='asis',则标题有效,但打印无效;如果我删除results='asis',则打印有效,但标题无效。有什么解决办法吗?这里有一个可复制的示例,它与我正在做的非常接近,尽管子列表在这里是精心设计的,工作起来并不完全正确,但其思想是相同的(标题的

我读过类似的问题(,还有),但没能让它起作用,可能是因为循环中的列表中混合了grob和rastergrob。本质上,我有一个嵌套的for循环来打印列表中的对象,并希望使用标记为对象创建标题。我将使用带有子模板的knit_扩展方法。如果我设置results='asis',则标题有效,但打印无效;如果我删除results='asis',则打印有效,但标题无效。有什么解决办法吗?这里有一个可复制的示例,它与我正在做的非常接近,尽管子列表在这里是精心设计的,工作起来并不完全正确,但其思想是相同的(标题的混合,需要是asis和plot对象):

主模板(Master.Rmd)


我确信还有其他方法可以做到这一点,但我最终找到了如何将标题标记直接添加到master.Rmd的knit expand输出中,如下所示:

  `out = c(out, knit_expand(text = paste0("\n## ", {{names(combined.plots[i])}},  "\n  ")))`
    ```{r echo=FALSE}
      grid.arrange(plotsList[[i]][['example_plot']][[j]])
    ```

    ```{r echo=FALSE, results='asis'}
      grid.arrange(plotsList[[i]][['png_example']])
    ```
  `out = c(out, knit_expand(text = paste0("\n## ", {{names(combined.plots[i])}},  "\n  ")))`