私はたくさんの.RData時系列ファイルを持っているので、最初にファイルを他の拡張子(.csvなど)に変換せずにPythonに直接ロードしたいと思います。これを達成する方法は?
R-helpとR-devのリストでこのようなことを尋ねられますが、通常の答えは、コードが.RData
ファイル形式のドキュメントであるということです。したがって、他の言語でのその他の実装は、hard ++です。
唯一の合理的な方法は、RPy2をインストールし、そこからRのload
関数を使用して、適切なpythonオブジェクトに変換することです。.RData
ファイルには構造化オブジェクトとプレーンテーブルの両方に注意してください。
リンキー: http://rpy.sourceforge.net/rpy2/doc-2.4/html/
Quicky:
>>> import rpy2.robjects as robjects
>>> robjects.r['load'](".RData")
オブジェクトがRワークスペースにロードされます。
>>> robjects.r['y']
<FloatVector - Python:0x24c6560 / R:0xf1f0e0>
[0.763684, 0.086314, 0.617097, ..., 0.443631, 0.281865, 0.839317]
それは単純なスカラーで、dはデータフレームです。列を取得するためにサブセット化できます。
>>> robjects.r['d'][0]
<IntVector - Python:0x24c9248 / R:0xbbc6c0>
[ 1, 2, 3, ..., 8, 9, 10]
>>> robjects.r['d'][1]
<FloatVector - Python:0x24c93b0 / R:0xf1f230>
[0.975648, 0.597036, 0.254840, ..., 0.891975, 0.824879, 0.870136]
Jupyterノートブックを使用している場合、2つのステップを実行する必要があります。
ステップ1: http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2 に移動して、Python R言語へのインターフェイス(埋め込みR)私の場合、rpy2-2.8.6-cp36-cp36m-win_AMD64.whl
このファイルを現在の作業ディレクトリに配置します。
ステップ2:Jupyterノートブックに移動して、次のコマンドを記述します
# This is to install rpy2 library in Anaconda
!pip install rpy2-2.8.6-cp36-cp36m-win_AMD64.whl
その後
# This is important if you will be using rpy2
import os
os.environ['R_USER'] = 'D:\Anaconda3\Lib\site-packages\rpy2'
その後
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
これにより、PythonでR関数を使用できるようになります。次のようにreadRDS
をインポートする必要があります
readRDS = robjects.r['readRDS']
df = readRDS('Data1.rds')
df = pandas2ri.ri2py(df)
df.head()
おめでとう!これで必要なデータフレームができました
ただし、後で使用するためにpython asとしてpickleファイルに保存することをお勧めします
df.to_pickle('Data1')
したがって、次回は単純にそれを使用することができます
df1=pd.read_pickle('Data1')