Rデータ形式:RData、Rda、Rdsなど


226

.RData、.Rda、.Rdsファイルの主な違いは何ですか?

すなわち:

  • 圧縮などに違いはありますか?
  • それぞれのタイプはいつ使用すべきですか?
  • あるタイプを別のタイプに変換する方法は?

回答:


189

RdaはRDataの略称です。RDataと同じように、save()、load()、attach()などを実行できます。

Rdsは単一の Rオブジェクトを格納します。しかし、その単純な説明以外にも、「標準」ストレージとはいくつかの違いがあります。おそらくreadRDS()関数へのこのR-manual Linkは、そのような区別を十分に明確にします。

だから、あなたの質問に答える:

  • 違いは圧縮ではなく、シリアル化です(このページを参照
  • マニュアルページに示されているように、たとえば、別の名前で特定のオブジェクトを復元するために使用したい場合があります。
  • RDS()とsave()、またはload()とsaveRDS()を選択的に読み取ることができます。

151

@KenMの回答に加えて、別の重要な違いは、保存されたオブジェクトをロードするときに、Rdsファイルの内容を割り当てることができることです。そうではないRda

> x <- 1:5
> save(x, file="x.Rda")
> saveRDS(x, file="x.Rds")
> rm(x)

## ASSIGN USING readRDS
> new_x1 <- readRDS("x.Rds")
> new_x1
[1] 1 2 3 4 5

## 'ASSIGN' USING load -- note the result
> new_x2 <- load("x.Rda")
loading in to  <environment: R_GlobalEnv> 
> new_x2
[1] "x"
# NOTE: `load()` simply returns the name of the objects loaded. Not the values. 
> x
[1] 1 2 3 4 5

試してみてください:x <-1:5 print(x)save(x、file = "x.Rda")rm(x)print(x)load( "x.Rda")print(x)
Harlan Nelson

4
@HarlanNelsonが試してみました。私が期待したとおりにやりました。あなたのポイントは何ですか?
グレゴールトーマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.