次のようなRマークダウンドキュメントがあります。
The following graph shows a histogram of variable x:
```{r}
hist(x)
```
ループを導入したいので、複数の変数に対して同じことを行うことができます。仮説的に次のようなもの:
for i in length(somelist) {
output paste("The following graph shows a histogram of somelist[[" , i, "]]")
```{r}
hist(somelist[[i]])
```
それも可能ですか?
PS:より大きな計画は、データフレームを超えて、各列(たとえば、ヒストグラム、テーブル、ボックスプロットなど)に適切な要約を自動的に生成するプログラムを作成することです。その後、プログラムを使用して、最初のデータのデータを表示するときに行う探索的分析を含むマークダウンドキュメントを自動的に生成できます。
それはあなたが望むものでしょうか?
---
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')
}
```
この答えは、多かれ少なかれ here から盗まれました。
既に述べたように、すべてのループはコードチャンク内にある必要があります。各行のヘッダーとしてテキスト行を追加するよりも、ヒストグラムにタイトルを付ける方が簡単な場合があります。
```{r}
for i in length(somelist) {
title <- paste("The following graph shows a histogram of", somelist[[ i ]])
hist(somelist[[i]], main=title)
}
```
ただし、複数のレポートを作成する場合は、 このスレッド をチェックしてください。
この例 へのリンクもあります
レンダーコールがスクリプト内から行われると、環境変数をRmdファイルに渡すことができるようです。
そのため、Rスクリプトを使用することもできます。
for i in length(somelist) {
rmarkdown::render('./hist_.Rmd', # file 2
output_file = paste("hist", i, ".html", sep=''),
output_dir = './outputs/')
}
そして、Rmdチャンクは次のようになります。
```{r}
hist(i)
```
免責事項:私はこれをテストしていません。