受講をご検討中の方へ

COLUMN
連載コラム

2015.11.11

PythonからRを利用する方法

Rは統計解析を目的とした言語であり、
様々な統計解析や機械学習などのライブラリーが提供されています。

 

一方、Pythonはシステム開発のライブラリーが豊富に提供されており、
Rよりも簡単にシステム開発が行えます。
Pythonでも統計解析や機械学習のライブラリーは提供されていますが、
プログラムはPythonで書き、PythonからRの統計解析や機械学習のライブラリーを利用したいという場合があります。
こんなときにPythonからRを利用する方法を知っていると便利です。

 

PypeRというライブラリーを使うと、
PythonからRを利用することが可能となります。

 

PypeRのインストールは簡単で、以下のコマンドを実行するだけです。

 

pip install pyper

 

では、実際にPypeRを使ってPythonからRを利用してみます。
例として、フィッシャーのあやめのデータセット(※1)を用いて、
あやめの品種を予測する決定木をRで作成して、
作成した決定木によりあやめの品種の予測値を出してみます。

 

import pyper
import pandas as pd

 

#Pythonでフィッシャーのあやめのデータセットを読み込む
iris = pd.read_csv(“iris.csv”)

 

#Rのインスタンスを作る
r = pyper.R(use_pandas=’True’)

 

#PythonのオブジェクトをRに渡す
r.assign(“iris”,iris)

 

#Rで決定木を作成し、あやめの品種の予測値を出す
 r(“library(rpart);result <- rpart(Species~.,data=iris);predict <- predict(result,type=’class’)

 

これでPythonで読んだiris.csvのデータセットがRに渡り、決定木を作成し、あやめの品種の予測値が出ます。
pandasのデータフレームを直接渡せるので便利です。

 

PythonでRで出したあやめの品種の予測値を取り出すには次のようにします。

 

predict = r.get(“predict”)

 

print predict
[‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’
 ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’
 ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’
 ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’
 ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’
 ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’ ‘setosa’
 ‘setosa’ ‘setosa’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘virginica’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’ ‘versicolor’
 ‘versicolor’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’
 ‘virginica’ ‘versicolor’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’
 ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’
 ‘virginica’ ‘virginica’ ‘versicolor’ ‘virginica’ ‘virginica’ ‘virginica’
 ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’
 ‘versicolor’ ‘virginica’ ‘virginica’ ‘virginica’ ‘versicolor’ ‘versicolor’
 ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’
 ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’ ‘virginica’
 ‘virginica’ ‘virginica’ ‘virginica’]

 

これでpredictに配列オブジェクトとして予測値が格納されます。

 

以上、Pythonから簡単にRを呼び出す事が分かって頂けたかと思います。
RとPythonを別々に実行せずにPythonを中心とした開発が可能になります。

 

※1 フィッシャーのあやめのデータセットは、
Rに組み込まれているirisデータセットを利用します。
Rで以下のコマンドでirisデータセットをcsvファイルに保存ができます。

 

data(iris)
write.csv(iris,”iris.csv”,row.names=F)

 

TOPICS
トピックス一覧

アーカイブ

データサイエンスアカデミーでは、
無料セミナー・説明会を実施中!

お申込みはこちらから!