使用R中的spineplot
,我试图创建一系列的图表,比较一些潜在的协变量与年龄类别,以便我们可以做一些初步的数据探索。我用RStudio编写了这段代码,我使用RStudio将文件编织成一个HTML。但是,我很难让循环生成的每个地块都有一个适当的RMarkdown头。我尝试过将cat("## my header")
放在生成每个情节的循环中,但出于某种原因,它只出现在第一个情节中,而不是其他情节中。它会打印出其余的内容,但不会被解释为Markdown。
下面是我的代码示例:
---
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"),
covA=c("Class 0","Class 1","Class 3","Class 2","Class 4","Class 3","Class 1","Class 2"),
covB=c("Class 1","Class 3","Class 2","Class 4","Class 4","Class 1","Class 1","Class 0"),
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) {
cat(paste("## Spineplot of",x,"vs. age groups\n",sep=" "))
spineplot(x = tempdata[[x]],
y = tempdata$age,
ylab = "Age Group",
xlab = "Class",
col = temp_colvec,
off = 0,
yaxlabels = c(NA,NA,NA,NA,NA),
main = paste("Classes of",x,"versus age groups",sep=" "))
for(j in 1:5) {
axis(side = 2,
at = temp_locvec[j],
labels = temp_labvec[j],
col.axis = temp_colvec[j],
font.axis = 2)
}
rm(j)
}
rm(list=c("x“、"temp_locvec”、"temp_labvec“、"temp_colvec"))
输出结果如下。
发布于 2014-09-03 16:14:52
原来你需要额外的马车退货。正如一辉指出的那样,头球需要一个空行才能被Markdown正确地解释。在循环结束时添加一个简单的cat("\n\n")可以修复一些问题。
我只试过添加一个中断行,但忽略了需要两个行才能正确解释标题。
---
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"),
covA=c("Class 0","Class 1","Class 3","Class 2","Class 4","Class 3","Class 1","Class 2"),
covB=c("Class 1","Class 3","Class 2","Class 4","Class 4","Class 1","Class 1","Class 0"),
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) {
cat(paste("## Spineplot of",x,"vs. age groups\n",sep=" "))
spineplot(x = tempdata[[x]],
y = tempdata$age,
ylab = "Age Group",
xlab = "Class",
col = temp_colvec,
off = 0,
yaxlabels = c(NA,NA,NA,NA,NA),
main = paste("Classes of",x,"versus age groups",sep=" "))
for(j in 1:5) {
axis(side = 2,
at = temp_locvec[j],
labels = temp_labvec[j],
col.axis = temp_colvec[j],
font.axis = 2)
}
rm(j)
cat("\n\n")
}
rm(list=c("x“、"temp_locvec”、"temp_labvec“、"temp_colvec"))
发布于 2014-11-25 14:59:32
我粘贴了一个我为another question准备的简短示例
```{r, results='asis'}
cat("\n\n##标题“)
为(在独特的(汽车$速度)){
cat("\n\n### speed",s)
}
我在the other question中删除了这个示例,因为它是关于标记语法的,并且不适合Latex/ Rnw主题。
https://stackoverflow.com/questions/25535499
复制相似问题