4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonを用いてRDataからcsvに変換する

Posted at

私用で使いたいデータセットに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で出力

以上で終了です。データフレームの作成段階で必要ないデータを抜いて出力すればより扱いやすいデータを作成できると思います。
当方も初学者ですのでもっとスマートなやり方があったり何かアドバイスがあればコメントで助言いただけると幸いです。

4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?