首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建具有唯一RMarkdown头的多个绘图

创建具有唯一RMarkdown头的多个绘图
EN

Stack Overflow用户
提问于 2014-08-27 19:29:00
回答 2查看 1.8K关注 0票数 6

使用R中的spineplot,我试图创建一系列的图表,比较一些潜在的协变量与年龄类别,以便我们可以做一些初步的数据探索。我用RStudio编写了这段代码,我使用RStudio将文件编织成一个HTML。但是,我很难让循环生成的每个地块都有一个适当的RMarkdown头。我尝试过将cat("## my header")放在生成每个情节的循环中,但出于某种原因,它只出现在第一个情节中,而不是其他情节中。它会打印出其余的内容,但不会被解释为Markdown。

下面是我的代码示例:

代码语言:javascript
运行
复制
---
title: "Minimal Working Example"
author: "TARehman"
date: "Wednesday, August 27, 2014"
output:
  html_document:
    toc: yes
---

# Spineplots
```{r mwe, echo=FALSE, results='asis', fig.height=5, fig.width=8, dpi=300}

Data.frame <- age=c( "0-1“、”0-1“、"1-3”、"1-3“、"3-7”、"10-15“、"3-7”、"7-10"),

代码语言:javascript
运行
复制
                   covA=c("Class 0","Class 1","Class 3","Class 2","Class 4","Class 3","Class 1","Class 2"),
代码语言:javascript
运行
复制
                   covB=c("Class 1","Class 3","Class 2","Class 4","Class 4","Class 1","Class 1","Class 0"),
代码语言:javascript
运行
复制
                   covC=c("Class 3","Class 3","Class 2","Class 3","Class 1","Class 4","Class 4","Class 4"))

temp_covars <- c("covA“、"covB”、"covC")

temp_locvec <- c(0.1、0.3、0.5、0.7、0.9)

temp_labvec <- c("0-1“、"1-3”、"3-7“、"7-10”、"10-15")

temp_colvec <-彩虹(n= 5,start = 7/12,end = 9/12,alpha = 0.8)

for(x in temp_covars) {

代码语言:javascript
运行
复制
cat(paste("## Spineplot of",x,"vs. age groups\n",sep=" "))
代码语言:javascript
运行
复制
spineplot(x = tempdata[[x]],
代码语言:javascript
运行
复制
          y = tempdata$age,
代码语言:javascript
运行
复制
          ylab = "Age Group",
代码语言:javascript
运行
复制
          xlab = "Class",
代码语言:javascript
运行
复制
          col = temp_colvec,
代码语言:javascript
运行
复制
          off = 0,
代码语言:javascript
运行
复制
          yaxlabels = c(NA,NA,NA,NA,NA),
代码语言:javascript
运行
复制
          main = paste("Classes of",x,"versus age groups",sep=" "))
代码语言:javascript
运行
复制
for(j in 1:5) {
代码语言:javascript
运行
复制
    axis(side = 2,
代码语言:javascript
运行
复制
         at = temp_locvec[j],
代码语言:javascript
运行
复制
         labels = temp_labvec[j],
代码语言:javascript
运行
复制
         col.axis = temp_colvec[j],
代码语言:javascript
运行
复制
         font.axis = 2)
代码语言:javascript
运行
复制
    }
代码语言:javascript
运行
复制
rm(j)

}

rm(list=c("x“、"temp_locvec”、"temp_labvec“、"temp_colvec"))

代码语言:javascript
运行
复制

输出结果如下。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-03 16:14:52

原来你需要额外的马车退货。正如一辉指出的那样,头球需要一个空行才能被Markdown正确地解释。在循环结束时添加一个简单的cat("\n\n")可以修复一些问题。

我只试过添加一个中断行,但忽略了需要两个行才能正确解释标题。

代码语言:javascript
运行
复制
---
title: "Working Solution"
author: "TARehman"
date: "September 3, 2014"
output:
  html_document:
    toc: yes
---

# Spineplots
```{r mwe, echo=FALSE, results='asis', fig.height=5, fig.width=8, dpi=300}

Data.frame <- age=c( "0-1“、”0-1“、"1-3”、"1-3“、"3-7”、"10-15“、"3-7”、"7-10"),

代码语言:javascript
运行
复制
                   covA=c("Class 0","Class 1","Class 3","Class 2","Class 4","Class 3","Class 1","Class 2"),
代码语言:javascript
运行
复制
                   covB=c("Class 1","Class 3","Class 2","Class 4","Class 4","Class 1","Class 1","Class 0"),
代码语言:javascript
运行
复制
                   covC=c("Class 3","Class 3","Class 2","Class 3","Class 1","Class 4","Class 4","Class 4"))

temp_covars <- c("covA“、"covB”、"covC")

temp_locvec <- c(0.1、0.3、0.5、0.7、0.9)

temp_labvec <- c("0-1“、"1-3”、"3-7“、"7-10”、"10-15")

temp_colvec <-彩虹(n= 5,start = 7/12,end = 9/12,alpha = 0.8)

for(x in temp_covars) {

代码语言:javascript
运行
复制
cat(paste("## Spineplot of",x,"vs. age groups\n",sep=" "))
代码语言:javascript
运行
复制
spineplot(x = tempdata[[x]],
代码语言:javascript
运行
复制
          y = tempdata$age,
代码语言:javascript
运行
复制
          ylab = "Age Group",
代码语言:javascript
运行
复制
          xlab = "Class",
代码语言:javascript
运行
复制
          col = temp_colvec,
代码语言:javascript
运行
复制
          off = 0,
代码语言:javascript
运行
复制
          yaxlabels = c(NA,NA,NA,NA,NA),
代码语言:javascript
运行
复制
          main = paste("Classes of",x,"versus age groups",sep=" "))
代码语言:javascript
运行
复制
for(j in 1:5) {
代码语言:javascript
运行
复制
    axis(side = 2,
代码语言:javascript
运行
复制
         at = temp_locvec[j],
代码语言:javascript
运行
复制
         labels = temp_labvec[j],
代码语言:javascript
运行
复制
         col.axis = temp_colvec[j],
代码语言:javascript
运行
复制
         font.axis = 2)
代码语言:javascript
运行
复制
    }
代码语言:javascript
运行
复制
rm(j)
代码语言:javascript
运行
复制
cat("\n\n")

}

rm(list=c("x“、"temp_locvec”、"temp_labvec“、"temp_colvec"))

代码语言:javascript
运行
复制
票数 6
EN

Stack Overflow用户

发布于 2014-11-25 14:59:32

我粘贴了一个我为another question准备的简短示例

代码语言:javascript
运行
复制
```{r, results='asis'}

cat("\n\n##标题“)

为(在独特的(汽车$速度)){

代码语言:javascript
运行
复制
cat("\n\n### speed",s)

}

代码语言:javascript
运行
复制

我在the other question中删除了这个示例,因为它是关于标记语法的,并且不适合Latex/ Rnw主题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25535499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档