2

通常、を使用してRオブジェクトを保存し、saveRDS後でを使用して特定の変数に再割り当てできるようにしますdf= readRDS(...)。時々私はstataで何かをしたいのですが。saveRDSでは、stataに保存されているファイルを開く方法はありますか?

4

1 に答える 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 に答える