RStudioでPythonとRをともに使う

RStudioでPythonとRをともに使う

Rを使いデータ分析やモデル構築などをするとき、RStudioを使うケースは多いでしょう。

最近、RStudio上でPythonを使うことができるようになっています。

RStudio上で、RPythonでダイレクトにやり取りすることができます。

今回は、「RStudioでPythonとRをともに使う」というお話しをします。

RStudioがインストールされていることを前提にしています。

Pythonファイルを作る

RStudio上でRを使うときは、Rファイルを作りその上でR言語のスクリプトを書き実行します。

Pythonも同様に、RStudio上でPythonを使うときは、Pythonファイルを作りその上でPython言語のスクリプトを書き実行します。

メニューバーにある「File」をクリックし「Python Script」を選択しPythonファイルを作ります(File -> New File -> Python Script)。

Pythonをインストールされている方は、メニューバーにある「Tools」をクリックし 「Global Options」をクリックします(Tools -> Global Options)。表示されたでウインドウで「Python」を選択し、「Python interpreter」に使用したいPython環境を選択します。

ちなみに、Rファイルを作るときは「File -> New File -> R Script」となります。

RPythonでダイレクトにやり取りするときは、両方のファイルを作っておいてください。一方で作ったオブジェクト(ベクトルや行列、データフレーム、集計結果など)を、他方で使うことができます。

Pythonで簡単な演算をしてみよう!

例えば、次にようなPythonコードを、Pythonファイルに記載し実行します。

# Python演算 
a = 1
b = 2
c = a + b
c

以下、実行結果(RStudioのConsole部分)です。

Pythonの場合には「>>>」となります。

RStudioの「Environment部分」にPythonで作ったオブジェクトを確認することができます。

ライブラリー「reticulate」で、RとPythonでダイレクトにやり取りする

RPythonでダイレクトにやり取りするためには、Rのライブラリーreticulate」が必要になります。

実は今説明した、RStudioPythonを使う機能は、裏でRのライブラリーreticulate」が動いています。それを、裏で動かすという感じでなく、表舞台に来てもらいます。

Rのライブラリーreticulate」を、まだインストールされていない方は、RStudio上からインストールしておきましょう(Packages -> Install)。

reticulate」を利用するときは、次にようなRコードを、Rファイルに記載し実行します。

# RとPythonでやり取りする設定
library(reticulate)
repl_python()

Pythonで作ったオブジェクトをRで受け取る

Pythonで作ったオブジェクトである「c」をR上で参照し、別の演算で使用したいと思います。

例えば、次にようなRコードを、Rファイルに記載し実行します。

# Pythonのオブジェクト参照
py$c

以下、実行結果(RStudioのConsole部分)です。

Pythonで作ったオブジェクトR上で参照するときは「py$」を頭に付けます。

次に、R上で次のような演算をします。

# Pythonのオブジェクトを使った演算
d <- py$c + 4
d

以下、実行結果(RStudioのConsole部分)です。

Pythonの場合には「>>>」でしたが、Rの場合には「>」となっています。

RStudioの「Environment部分」にRで作ったオブジェクトを確認することができます。

Rで作ったオブジェクトをPythonで受け取る

今度は逆に、Rで作ったオブジェクトである「d」をPythom上で参照し、別の演算で使用したいと思います。

例えば、次にようなRコードを、Rファイルに記載し実行します。

# Rのオブジェクト参照
r.d

以下、実行結果(RStudioのConsole部分)です。

Rで作ったオブジェクトPyhton上で参照するときは「r.」を頭に付けます。

次に、R上で次のような演算をします。

# Rのオブジェクトを使った演算
e = r.d + 5
e

以下、実行結果(RStudioのConsole部分)です。

データフレームなどもそのままやり取りできます。

例えば、Rにデフォルトで備わっているサンプルデータであるアイリス(iris)のデータセットを、Pyhton上で参照しそのデータを受け取ることができます。

以下、コードです。

# RのデータセットをもとにPythonのデータセット作成
irisData = r.iris

データの中身をRStudio上で見てみます。

以下、コードです。

View(irisData)

以下、実行結果です。

まとめ

今回は、「RStudioでPythonとRをともに使う」というお話しをします。

RStudioPythonが使えるインパクトは非常に大きく、ダイレクトにPythonRで実行結果をやり取りできるのがいいですね。

RPythonにはそれぞれの得手不得手がありますので、その辺をおぎあいながらデータサイエンス業務をシームレスに進めることができます。

興味のある方は、試してみてください。