RDS ファイル形式とは?
.rdsファイルは、RのsaveRDS()関数によって生成される R Data Serializationファイルです。データフレーム、リスト、モデル、ベクトル、またはその他のR構造など、正確に1つのRオブジェクトをR固有のバイナリシリアル化形式で保存します。save()によって作成され、名前付きオブジェクトをグローバル環境に直接復元する.RDataファイルとは異なり、.rdsファイルはreadRDS()で読み込まれ、呼び出し側が任意の変数名に割り当てることができる値として返されます。
デフォルトでは、シリアル化されたデータはgzip圧縮でラップされているため、Rオブジェクトとして処理されない場合、ほとんどの.rdsファイルはgzipストリーム(マジックバイト 1F 8B)として開かれます。圧縮はbzip2、xzに設定することも、saveRDS(obj, file, compress = FALSE)で完全に無効にすることも可能です。
Rは2つのシリアル化形式バージョンをサポートしています。バージョン2(R 1.4-3.4、R 3.5.0以前のデフォルト)と、バージョン3(R 3.5.0以降のデフォルト、2018年4月リリース)です。後者は文字列の明示的なエンコーディングメタデータを追加しており、非ASCIIテキストにとって重要です。ファイルサイズは、小さなベクトルの数キロバイトから、大きなデータフレームや複雑なモデルの数ギガバイトまで多岐にわたります。
.rdsファイルはRオブジェクト永続化の標準単位です。アナリストはこれを使用して、中間結果のキャッシュ、トレーニング済みモデルオブジェクトの共有、セッション間での処理済みデータの保存を行います。ツール間で共有される相互運用可能なカラムナデータについては、.parquetなどの形式が好まれるようになっていますが、消費者が常にRである場合は、依然として.rdsが第一の選択肢となります。
セキュリティと安全性
リスク: MEDIUMRDSファイルは、クロージャ、S4メソッド、またはR5/R6クラス環境を介して任意のRコードを埋め込むことができます。readRDS() はアクセス時にプロミスやアクティブバインディングを評価します。悪意を持って作成されたオブジェクトはデシリアライズ中にコードを実行する可能性があるため、信頼できないソースからの .rds ファイルをRで開かないでください。R Core Teamはこのリスクをドキュメントで指摘しています。
形式の詳細
概要- Ray Dream Studio シーンファイル - Ray Dream Inc. / MetaCreations(後の Carrara/DAZ)による1990年代のレガシー3Dアニメーション形式。マジックバイト «RD » (16進数で 0x33 0x44 0x43 0x20、'3DC ') を持つバイナリ。ソフトウェアは廃止されており、現代のツールでは読み取れません。
RDS ファイルを開くプログラム
技術的詳細
詳細仕様| エンコーディング | バイナリ(デフォルトでgzip圧縮)。bzip2、xz、または非圧縮バリアントもサポート |
| 保存されるオブジェクト | 1ファイルにつき正確に1つのRオブジェクト。ベクトル、リスト、data.frame、モデル、環境参照など、あらゆる SEXP 型 |
| シリアル化形式バージョン | バージョン2(R 1.4-3.4)またはバージョン3(R 3.5以降、2018年からのデフォルト)。バージョン番号はストリームヘッダーに保存 |
| デフォルトの圧縮 | gzip (compress=TRUE)。代替案:bzip2、xz、またはなし (compress=FALSE) |
| マジックバイト | 1F 8B(gzipヘッダー、圧縮時)、58 0A(XDR非圧縮)、41 0A(ASCII非圧縮) |
| バイト順序 | 生のシリアル化ストリームにはビッグエンディアンの XDR (External Data Representation) を使用。圧縮ラッパーはプラットフォームに依存しない |
| シリアル化の範囲 | 単一のRオブジェクト(呼び出し環境に復元される1つ以上の名前付きオブジェクトを保存する .RData とは対照的) |
| 文字エンコーディングメタデータ | バージョン3形式は文字列の明示的なエンコーディングメタデータを埋め込み、非ASCIIコンテンツの正しい処理を可能にする |
| 一般的なファイルサイズ | 数KB(小さなベクトル)から数GB(大きなデータフレーム、トレーニング済み機械学習モデル) |
| 読み書き関数 | readRDS() はオブジェクトを値として返し、saveRDS() はそれを書き込む。読み込み時に呼び出し側が任意の変数名を割り当てる |
| プラットフォーム互換性 | クロスプラットフォーム。Windows、Linux、macOSで同一のシリアル化ストリームを生成 |
| 圧縮の確認 | バイナリエディタでマジックバイトを検査するか、Rの gzcon() / file() 接続関数を使用してgzipラッピングを確認 |
| リリース日 | 2001 (R 1.4.0, saveRDS/readRDS introduced) |
| 最新バージョン | Serialization format version 3 (R 3.5.0, 2018) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | stat.ethz.ch |
RDS の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。RDS ファイルについて最初の質問をしてみましょう。
よくある質問
RDSファイルを開くにはどうすればよいですか?
mydata <- readRDS('file.rds') を使用します。RStudioでは、Filesペインでファイルをクリックします。Pythonの場合は、rpy2パッケージを使用します。RDSファイルには何が含まれていますか?
RなしでRDSファイルを開くことはできますか?
.rds と .RData/.rda の違いは何ですか?
RDSファイルは Ray Dream 3Dファイルと同じですか?
RDSファイルをCSVに変換できますか?
write.csv(readRDS('file.rds'), 'out.csv') を実行します。複雑なオブジェクトの場合は、まず手動で表形式の部分を抽出する必要があります。