Rを使いデータ分析やモデル構築などをするとき、RStudioを使うケースは多いでしょう。
最近、RStudio上でPythonを使うことができるようになっています。
RStudio上で、RとPythonでダイレクトにやり取りすることができます。
今回は、「RStudioでPythonとRをともに使う」というお話しをします。
RStudioがインストールされていることを前提にしています。
Contents
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」となります。
RとPythonでダイレクトにやり取りするときは、両方のファイルを作っておいてください。一方で作ったオブジェクト(ベクトルや行列、データフレーム、集計結果など)を、他方で使うことができます。
Pythonで簡単な演算をしてみよう!
例えば、次にようなPythonコードを、Pythonファイルに記載し実行します。
# Python演算 a = 1 b = 2 c = a + b c
以下、実行結果(RStudioのConsole部分)です。
Pythonの場合には「>>>」となります。
RStudioの「Environment部分」にPythonで作ったオブジェクトを確認することができます。
ライブラリー「reticulate」で、RとPythonでダイレクトにやり取りする
RとPythonでダイレクトにやり取りするためには、Rのライブラリー「reticulate」が必要になります。
実は今説明した、RStudioでPythonを使う機能は、裏で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上で見てみます。
RSutudioのConsole部分に以下のコードを入力し実行します。
View(irisData)
以下、実行結果です。
まとめ
今回は、「RStudioでPythonとRをともに使う」というお話しをします。
RStudioでPythonが使えるインパクトは非常に大きく、ダイレクトにPythonとRで実行結果をやり取りできるのがいいですね。
RとPythonにはそれぞれの得手不得手がありますので、その辺をおぎあいながらデータサイエンス業務をシームレスに進めることができます。
興味のある方は、試してみてください。