タイトルの通りです。
やり方
以下のようにやります:
````
`r ''````{r}
summary(cars)
`r ''````
````
このようにRmd上に記述すると,html出力では以下のようにrenderされます:
解説
まず,以下の前提があります:
- R MarkdownはPandoc Markdownの文法に従う
- 上記のテクニックはPandoc Markdownの応用
コードブロックをコードブロックで囲むには
Pandoc Markdownでは,コードブロックを示す記号(バッククオート×3)をコードブロック内に記述する方法として,**「そのバッククオートよりも多い連続バッククオート(たとえばバッククオート×4)で挟みこめばOK」**というのがあります。
これを利用すると,通常のコードブロックは以下のように記述できます:
````
```
(コード内容)
```
````
通常のコードブロックではこれでOKなのですが,Rチャンクの場合,これが適用できません。それは,knitした際にコードブロック内であろうともRチャンク部分を評価してしまうからです。
(Rチャンクが評価される例)
````
```{r}
(Rのコード)
```
````
この場合どうすればいいかというと,Rチャンク記号の前に,インラインRコードを差し込むと本体の評価を回避できます:
````
`r ''````{r}
summary(cars)
`r ''````
````
`r ''`
というのを上記のように行頭に置くことで,その行のRの評価が終了されるためです。この結果生成されるこの箇所のmdが以下のようになります:
````
```{r}
summary(cars)
```
````
この時点でファイルはmdになっているので,あとはこれをPandocが処理してhtmlにするため,前述の画像のような出力となります。
補足: QiitaにRチャンクを記述するには
QiitaにRチャンク(というかコードブロック)をコードブロックとして記述するには,行頭に半角スペース4つを各行に置いてください。1この「行頭半角スペース4つ」というのは,Markdown記法でコードブロックを意味します。なので,Qiitaでコードブロック自体をコードブロックとして表記したい場合は,そのようにしてください。
追記: このコードブロックの前後行は必ず空行を入れておいてください。これは必須です。
詳しくはこの記事を編集モード(「編集リクエストを送る」をクリック)で覗いてみてください。
Enjoy!
-
QiitaはQiitaのMarkdown記法があるようで,Pandoc Markdownではないです。ほんとにややこしい…。 ↩