4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

R MarkdownでPythonなど他言語を使用できる…?

Posted at

この記事の目的

私が大好きな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'. Run names(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!
4
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?