通常、を使用してRオブジェクトを保存し、saveRDS
後でを使用して特定の変数に再割り当てできるようにしますdf= readRDS(...)
。時々私はstataで何かをしたいのですが。saveRDS
では、stataに保存されているファイルを開く方法はありますか?
3300 次
1 に答える
6
Rのバイナリ形式で保存されている変数をStataから読み取らなければならないということは、データ管理戦略が不安定であることを示しています。複数の形式のデータを読み取る場合は、プラットフォーム固有ではない形式を使用する必要があります。これは通常、テキストベースの形式(CSVまたはタブ区切りまたはXMLまたはJSON)、データベース、または十分に文書化された標準化されたバイナリ形式(HDF5)を意味します。
resave
状況を修正するには、RDSファイルを読み込んで新しい形式で出力する関数が必要です。何かのようなもの
resave <- function(infile)
{
x <- readRDS(infile)
outfile <- sub("\\.rds$", "\\.csv", infile)
write.csv(x, outfile)
}
別の可能な戦略は、foreign::write.dta
必要に応じてファイルを変換することです。これについては、StatLoreブログで説明されています。たまにStataを使用する場合は、より良い戦略かもしれません。
アイデアは、ファイルを再保存するRコードのバッチファイルがあり、次にStataのshell
コマンドを使用してバッチモードでRを呼び出すことです。
shell "<path to R>\R.exe" CMD BATCH resaveAsDta.R
その後use
、通常どおりDTAファイルを作成できます。
于 2013-02-17T19:29:01.953 に答える