Rstudioでpythonを利用

Rstudioでpythonを利用するライブラリーがあるのでご紹介です。この方法を使えば前処理や機械学習ライブラリの利用はpython、探索的な分析や統計解析はRといったような使い方を共存させるのがとても楽になりそうです。

R側のlibraryのインストール

install.packages('reticulate')

これとは別にpythonのインストールも済ませておいてください。

ライブラリの利用

libraryを読み込ませたあとに「repl_python()」でpythonのコンソールがRstudioのコンソールにでてくると思います。使い方はほぼコマンドプロンプト上でpythonを利用するのと同じようです。

library(reticulate)
 repl_python()
 '''
 Rstudioの中でpythonを使えってインタラクティブなことができる模様。
 
 '''
 import pandas as pd
 from matplotlib import pyplot as plt 
 import seaborn as sns

 x = [1,2,3,4,5]
 y = [1,3,2,4,5]

 sns.set() # おまじない
 グラフの可視化
 plt.plot(x, y)
 plt.title("lineplot matplotlib")
 plt.xlabel("x")
 plt.ylabel("y")

pythonパッケージのインストール

py_installを利用することでpandasseabornといったパッケージをRstudioで利用しているpython環境にインストールできます。

py_install("pandas")

repl_python()の終了

quit

ちょっと面白いなと思うのですが、RstudioのRの世界でやっているようなオブジェクトの管理やplotの保管まではできなさそうです。

ただ、データクレンジングや前処理をpythonで実施、このデータをRで読み込んでデータ分析を行うには非常にポテンシャルがあるなと感じています。いい使い方がみつかたったら改めてご紹介します。

pythonで作ったスクリプトの利用例

pythonスクリプト

ファイル名は「flights.py」にしておいてください。

import pandas
 def read_flights(file):
   flights = pandas.read_csv(file)
   flights = flights[flights['dest'] == "ORD"]
   flights = flights[['carrier', 'dep_delay', 'arr_delay']]
   flights = flights.dropna()
   return flights

Rのスクリプト

pythonで利用したスクリプトをsource_pythonで上記のpythonスクリプト呼び出し、read_flightsでそのデータを読み込むことができるようです。システムに組み込むかもしれないデータの前処理をpythonで実施し、可視化や分析はRでということがよりしやすそうですね。

source_python("flights.py")
 flights <- read_flights("flights.csv")
 library(ggplot2)
 ggplot(flights, aes(carrier, arr_delay)) + geom_point() + geom_jitter()

windows10確認されているバグ

確認されているバグ

上記のリンクにある通りで現在(20/2/2時点)でのRstudioのバージョンが1.4以上、かつ、windows10のときにバグが発生するようです。visual markdownがあまりに便利なので私はRstudioを1.3に変えるの躊躇しているので気長に待つのがよさそうです。(素のRでは動くようです)