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上で参照し、別の演算で使用したいと思います。

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

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

 

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

 

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

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

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

 

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

 

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

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

以下、コードです。

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

 

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

RSutudioConsole部分に以下のコードを入力し実行します。

View(irisData)

 

以下、実行結果です。

 

まとめ

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

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

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

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