J'ai un document de démarque R comme celui-ci:
The following graph shows a histogram of variable x:
```{r}
hist(x)
```
Je veux introduire une boucle, donc je peux faire la même chose pour plusieurs variables. Quelque chose d'hypothétique comme ceci:
for i in length(somelist) {
output paste("The following graph shows a histogram of somelist[[" , i, "]]")
```{r}
hist(somelist[[i]])
```
Est-ce que c'est possible?
PS: Le plan le plus important est de créer un programme qui passerait par-dessus une trame de données et générerait automatiquement des résumés appropriés pour chaque colonne (par exemple, histogramme, tableaux, boîtes à moustaches, etc.). Le programme peut ensuite être utilisé pour générer automatiquement un document de démarque contenant l'analyse exploratoire que vous feriez lorsque vous voyez des données pour les premières données.
Serait-ce ce que tu veux?
---
title: "Untitled"
author: "Author"
output: html_document
---
```{r, results='asis'}
for (i in 1:2){
cat('\n')
cat("#This is a heading for ", i, "\n")
hist(cars[,i])
cat('\n')
}
```
Cette réponse a été plus ou moins volée à ici .
Comme déjà mentionné, toute boucle doit être dans un morceau de code. Il serait peut-être plus facile de donner un titre à l'histogramme plutôt que d'ajouter une ligne de texte comme en-tête pour chacun.
```{r}
for i in length(somelist) {
title <- paste("The following graph shows a histogram of", somelist[[ i ]])
hist(somelist[[i]], main=title)
}
```
Cependant, si vous souhaitez créer plusieurs rapports, consultez ce fil.
Qui a également un lien vers cet exemple.
Il semble que lorsque l'appel de rendu est effectué à partir d'un script, les variables d'environnement peuvent être transmises au fichier Rmd.
Une alternative pourrait donc être d'avoir votre script R:
for i in length(somelist) {
rmarkdown::render('./hist_.Rmd', # file 2
output_file = paste("hist", i, ".html", sep=''),
output_dir = './outputs/')
}
Et puis votre morceau Rmd ressemblerait à:
```{r}
hist(i)
```
Avertissement: je n'ai pas testé cela.