web-dev-qa-db-ja.com

Rデータフォーマット:RData、Rda、Rdsなど

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

すなわち:

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

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

Rdsは単一のRオブジェクトを格納します。それでも、その簡単な説明を超えて、「標準」ストレージとのいくつかの違いがあります。おそらくこれ RマニュアルreadRDS()関数へのリンク はそのような違いを十分に明確にしています。

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

  • 違いは圧縮ではなく直列化です( このページ をご覧ください)
  • マニュアルページに表示されているように、例えば、あなたはそれを違う名前のあるオブジェクトを復元するために使いたいかもしれません。
  • あなたはread()とsave()、あるいはload()とsaveRDS()を選択的に使うことができます。
161
KenM

@ KenMの答えに加えて、もう1つの重要な違いは、保存されたオブジェクトを読み込むときに、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
137
Ricardo Saporta