Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

この記事の目的

私が大好きな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:

names(knitr::knit_engines$get())

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

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

Enjoy!


  1. Pythonまったくわからないのでサンプルコードすらまともに書けません。 

  2. もちろんその言語の環境がインストールされてないと走りません。 

Why do not you register as a user and use Qiita more conveniently?
  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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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