10

Knitr を使用して、次のコードから HTML ドキュメントを作成すると:

Chunk Output
========================================================

Outside a chunk.

```{r chunk1, results='asis'}

cat('Inside a chunk\n\n')

for (i in 1:3) {
    cat('* Inside loop #', i, '\n')
}

cat('Outside a loop, but still inside the first chunk')
```

Between chunks.

```{r chunk2, results='asis'}

cat('Inside second chunk')

```

コードがステートメントchunk1の出力とインターリーブされている出力を取得します。cat興味深いことに、forループ内の出力は単一のブロックとして出力されます。

からのすべてのコードchunk1最初に表示し、その後に からのすべての出力chunk1表示することをお勧めします。Rmarkdown/knitr に、現在行っているより細かい織り込みを回避するように依頼する方法はありますか?

4

1 に答える 1

11

これが私が提案した解決策です

Chunk Output
========================================================

Outside a chunk.

```{r chunk1, results='hide'}

cat('Inside a chunk\n\n')

for (i in 1:3) {
    cat('* Inside loop #', i, '\n')
}

cat('Outside a loop, but still inside the first chunk')
```

```{r ref.label = 'chunk1', results = 'asis', echo = F}

```

@yihui は、knitr の最新バージョンでresults = "hold"、すべての出力の印刷を最後まで自動的に保持する新しいチャンク オプションを追加しました。したがって、次のように書くことができます

Chunk Output
========================================================

Outside a chunk.

```{r chunk1, results='hold'}

cat('Inside a chunk\n\n')

for (i in 1:3) {
    cat('* Inside loop #', i, '\n')
}

cat('Outside a loop, but still inside the first chunk')
```
于 2013-08-30T00:03:56.433 に答える