この記事の目的
私が大好きなRMarkdownについて、Tipsを集中的に連載しようという思いつきの企画です。あと自分の中で進めている別企画のメモという位置づけでもあります。なので大した中身はありません。
R Markdownとは
Markdown記法をベースに、チャンクという形でRのコードを記述して評価・出力することができるものです。RStudioのクイックリファレンスでは以下のように説明してあります:
R Markdown is an easy-to-write plain text format for creating dynamic documents and reports.
engine='python'...?
R Markdown reference(pdf)の2ページ目にはrチャンクオプション一覧があって非常にためになるのですが、その中にengine
というのがあります。その説明は以下のようになってます:
Knitr will evaluate the chunk in the named language, e.g.
engine = 'python'
. Runnames(knitr::knit_engines$get())
to see supported languages.
これはまさか…というわけで、Rmdファイルに以下のようなチャンクを作成してみて実行します:
```{r engine="python"}
f = lambda x, y: x + y
print f(1, 2)
```
すると出力はこうなります:
```
3
```
私の使用するマシンではちゃんと実行されました。なお同一のコードをRのコンソールで実行してもエラーが出ます…。おそらく環境設定などでPathが通っていれば、ある程度評価してくれるのではないかと思います[^1]。他にもいろんな言語に対応しているようですので、どんな言語に対応してるかは以下のコードをConsoleで実行して確認してみてください[^2]:
[^2]: もちろんその言語の環境がインストールされてないと走りません。
```
names(knitr::knit_engines$get())
```
[^1]: Pythonまったくわからないのでサンプルコードすらまともに書けません。
この機能についての解説は、以下をご覧ください:
- [Language engines: Use other languages in knitr | knitr](http://yihui.name/knitr/demo/engines/)
私としては使う機会はあまりないのですが、これまで全くと言っていいほど言及されてこなかったことから、あまり使えないのかもしれません。ただ需要はあると思ったのでご紹介しました。
Enjoy!