AOG*_*STA 5 r knitr r-markdown
长话短说,我正在尝试使用knitr动态创建单独的tabsets并在每个tabset中渲染一个图.以下是我失败尝试的说明.我会很感激解决方案,但我怀疑我只是不理解knitr渲染输出的基本方式.因此,如果您可以向我指出资源或提供一些概念性指导,那么也将不胜感激.
动态创建标签集很容易.这是我的.R文件
#' ---
#' title:
#' author:
#' date:
#' output:
#' html_document
#' ---
#' # {.tabset}
#+ results='asis', echo=FALSE
for(i in 1:10){
cat('##',i,' \n')
}
Run Code Online (Sandbox Code Playgroud)
当我在这个.R文件上调用rmarkdown :: render()时,我得到10个空的tabsets(见下文).我不确定猫做了什么或为什么\n是必要的(这是一些概念性的解释将被欣赏),但它的工作原理.
现在我添加了对for循环的boxplot()调用,并期望在每个tabset上获得相同的boxplot.
#' ---
#' title:
#' author:
#' date:
#' output:
#' html_document
#' ---
#' # {.tabset}
#+ results='asis', echo=FALSE
for(i in 1:10){
cat('##',i,' \n')
boxplot(iris$Sepal.Length~iris$Species)
}
Run Code Online (Sandbox Code Playgroud)
如果我添加另一个带有两个"\n"字符的cat(),则会显示所有选项卡,但只有第二个选项卡会填充图表.其他选项卡为空.
#' ---
#' title:
#' author:
#' date:
#' output:
#' html_document
#' ---
#' # {.tabset}
#+ results='asis', echo=FALSE
for(i in 1:10){
cat('##',i,' \n')
boxplot(iris$Sepal.Length~iris$Species)
cat(' \n \n')
}
Run Code Online (Sandbox Code Playgroud)
所以我找到了一个解决方案,但仍然不知道它为什么会起作用.非常感谢任何反馈.在每个plot()之前添加plot.new().
#' ---
#' title:
#' author:
#' date:
#' output:
#' html_document
#' ---
#' # {.tabset}
#+ results='asis', echo=FALSE
for(i in 1:10){
cat('##',i,' \n')
plot.new()
boxplot(iris$Sepal.Length~iris$Species)
cat(' \n \n')
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1707 次 |
| 最近记录: |