Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

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

この記事の目的

私が大好きな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まったくわからないのでサンプルコードすらまともに書けません。

この機能についての解説は、以下をご覧ください:

私としては使う機会はあまりないのですが、これまで全くと言っていいほど言及されてこなかったことから、あまり使えないのかもしれません。ただ需要はあると思ったのでご紹介しました。

Enjoy!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
6
Help us understand the problem. What are the problem?