いろいろするblog

プログラミングとか統計とかえーあい的なあれこれとか

データ解析のための統計モデリング入門をpythonでやる(2-1)-pyper導入-

【あらすじ】
pythonで.RData形式のファイルを読むためにpyperを使えるようにした。
pythonで.RData形式のファイルを読んだ。

【内容】
1)pyper導入
データ解析のための統計モデリング入門で使われるデータは著者が公開しており、以下のページにあります。
生態学データ解析 - 本/データ解析のための統計モデリング入門

これらのデータはRで使われるデータ形式である.RDataなので、そのままpythonで読めません。
というわけで、pythonからpyperを使ってRを操作して読んでいきます。

pip install pyper

pyperはpythonからRに命令を飛ばす橋渡しをするだけなので、Rをインストールしていないとpyperをimportしても使えません。
というわけでRを導入します。

普通にインストールする場合は以下のようなページを参考にしていけばいけるんじゃないですかね。
qiita.com

chocolateyを使う場合は

cinst R

でいけます。
いけますが、この方法だとPATHが通ってないっぽいのでpyper.R()をするときに呼び出し先がいないと怒られます。
その時は

pyper.R(RCMD="(Rのexeが置いてあるフォルダのパス)")

で指定してあげるとちゃんと動きます。

2).RData形式のデータを読む。
pyperで読んだ後、とりあえずpandasのSeriesに入れます。

import pyper
import pandas as pd

Rを触るためのオブジェクトを作ります。
また、このとき後でpandasとnumpyでも使えるようにしときます。
r = pyper.R(RCMD=r"(Rのパス)", use_numpy=True, use_pandas=True)

rに.RDataを読ませます。
今回はカレントディレクトリにあるdata.RDataを読ませます。
r('load("data.RData")')

data.RDataに入っている"data"という名前のデータを見たいときは
r.get("data")

とすると配列になって出てきます。
これをpandasのSeriesに入れます。
data = pd.Series(r.get("data"))

2章の一番最初のデータの要約。
In [47]: data.describe()
Out[47]:
count 50.00000
mean 3.56000
std 1.72804
min 0.00000
25% 2.00000
50% 3.00000
75% 4.75000
max 7.00000
dtype: float64

histでヒストグラムの表示。
data.hist()

f:id:yshim7:20181119110759p:plain

見づらいのでビン範囲と幅の調整とグリッドを非表示に。
data.hist(bins=[x / 10 for x in range(5, 95, 10)], grid=False, rwidth=0.8)

f:id:yshim7:20181119110819p:plain

満足。