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を利用することでpandas や seabornといったパッケージを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では動くようです)