私用で使いたいデータセットにRDataがあったのですが、内部のデータを抽出してpythonで扱えるフォーマット(今回は.csv)に変換する必要があったため、その方法を調べて自分用にまとめました。
pyreadrをインストールする
terminalでpyreadrというモジュールをインストール
pip install pyreadr
python3で使用したいなら、
pip3 install pyreadr
コチラ(https://github.com/ofajardo/pyreadr) を仕様するとRDataをpythonで扱えるようになる。
大まかな使い方
これでRData内のデータをpythonで扱うことができる。
import pyreadr
data = pyreadr.read_r(path) #使用する.RDataのpathを入力
A | B | C |
---|---|---|
0 | あ | a |
1 | い | b |
2 | う | c |
3 | え | d |
4 | お | e |
5 | か | f |
上記のテーブルの様な型でデータが入っていて、特定のカテゴリーを抽出したい場合、
A = data['A']
このようにするとコラムだけを抽出したデータを扱うこともできる。
pandasをインストールする
ここからは抽出したデータをcsvとして出力する為の方法。
おそらくpython使用してデータを扱う方には馴染みのあるモジュールでしょう。
pip install pandas
pip3 install pandas #さっきと同様、python3で使い方はコチラでインストール
ここから普通にデータフレームを作ってcsv形式で出力するだけです。念の為、私と同様の初学者のためにこの後の流れも記載しておきますが、pandasはpythonでデータ操作をする上で重要なパッケージなのでもっとしっかりしたサイトで学習することをお勧めします。
私が学習に使用したサイトのリンクを載せておきます。
https://tutorials.chainer.org/ja/11_Introduction_to_Pandas.html
もっとしっかり実用的な学習をしたい方にはコチラの学習本をお勧めします。
PythonユーザのためのJupyter[実践]入門
pandasでデータフレームを作ってcsvで出力する
RDataを入力して、データフレームを作ってcsvで出力するまでのコードを一気に書いていきます。
import pandas as pd
import pyreadr
PATH = 'hoge' #扱いたい.RDataのパス
w_PATH = 'hogehoge' #出力した.csvのパス
data = pyreadr.read_r(PATH) #.RDataを入力
df = pd.DataFrame({ #データフレームを作成
"A": data['A'],
"B": data['B'],
"C": data['C']
)}
df.to_csv(w_PATH) #作成したデータフレームを.csvで出力
以上で終了です。データフレームの作成段階で必要ないデータを抜いて出力すればより扱いやすいデータを作成できると思います。
当方も初学者ですのでもっとスマートなやり方があったり何かアドバイスがあればコメントで助言いただけると幸いです。