1

多くの .CSV ファイルを Python 経由で .DTA ファイルに変換するプロセスを自動化しようとしています。.DTA ファイルは、Stata Statistics 言語で処理されるファイル タイプです。

しかし、これを行う方法を見つけることができませんでした。

R言語には、 R のデータフレームを .dta ファイルに変換できるwrite(.dta)があり、RPy 経由で Python から R 言語へのポートがありますが、RPy を使用してアクセスする方法がわかりません。 R の write(.dta) 関数。

何か案は?

4

2 に答える 2

4

Python 用の rpy2 とforeign、R にインストールされたパッケージが必要です。これを行うには、R を起動して と入力しますinstall.packages("foreign")。その後、R を終了して Python に戻ることができます。

次に、これ:

import rpy2.robjects as robjects
robjects.r("require(foreign)")
robjects.r('x=read.csv("test.csv")')
robjects.r('write.dta(x,"test.dta")')

robjects.r必要に応じて、次のように Python 変数から渡される文字列を作成できます。

robjects.r('x=read.csv("%s")' % fileName)
于 2013-10-10T13:25:08.573 に答える
1

私の回答から前の質問へのコピーペースト)

pandas DataFrame オブジェクトに「to_stata」メソッドが追加されました。たとえば、次のことができます。

import pandas as pd
df = pd.read_stata('my_data_in.dta')
df.to_stata('my_data_out.dta')

免責事項:最初のステップは非常に遅く(私のテストでは、51 MBのデータを読み取るのに約1分-この質問も参照してください)、2番目のステップでは元のファイルよりもはるかに大きなファイルが生成されます(私のテストでは、サイズは 51 MB から 111 MB になります)。Spacedman の回答はエレガントではないように見えるかもしれませんが、おそらくより効率的です。

于 2014-04-15T09:00:58.213 に答える