web-dev-qa-db-fra.com

comment créer une boucle qui comprend à la fois un morceau de code et du texte avec knitr dans R

J'essaie de comprendre comment créer une boucle qui insère du texte dans le fichier rmarkdown, puis produit le graphique ou le tableau qui correspond à cet en-tête. Voici comment je l'imagine fonctionner:

for(i in 1:max(month)){
### `r month.name[i]` Air quaility

```{r, echo=FALSE}
plot(airquality[airquality$Month == 5,])
```
}

Bien sûr, cela affiche simplement la boucle for sous forme de texte, si j'entoure la boucle for avec r `` j'obtiendrais simplement une erreur.

Je veux que le code produise un fichier rmd qui ressemble à ceci:

Mai Qualité de l'air

Plot

Qualité de l'air en juin

plot

et ainsi de suite. des idées? Je ne peux pas utiliser de latex car à mon travail, ils ne nous permettent pas de télécharger des fichiers exe, et je ne sais pas comment utiliser le latex de toute façon. Je veux produire un document Word.

24
Isaac Fratti

Vous pouvez intégrer le démarque à l'intérieur de la boucle à l'aide de cat().

Remarque: vous devrez définir results="asis" pour que le texte soit rendu sous forme de démarque. Notez bien: vous aurez besoin de deux espaces devant le \n nouveau caractère de ligne pour que knitr rende correctement la démarque en présence d'un tracé.

# Monthly Air Quality Graphs
```{r pressure,fig.width=6,echo=FALSE,message=FALSE,results="asis"}

attach(airquality)
for(i in unique(Month)) {
  cat("  \n###",  month.name[i], "Air Quaility  \n")
  #print(plot(airquality[airquality$Month == i,]))
  plot(airquality[airquality$Month == i,])
  cat("  \n")
}
```
37
jclouse