Format data R: RData, Rda, Rds dll

226

Apa perbedaan utama antara file .RData, .Rda dan .Rds?

Lebih spesifik:

  • Apakah ada perbedaan dalam kompresi dll?
  • Kapan setiap jenis digunakan?
  • Bagaimana cara mengubah satu tipe ke tipe lainnya?
Carlos Cinelli
sumber

Jawaban:

189

Rda hanyalah nama pendek untuk RData. Anda dapat menyimpan (), memuat (), melampirkan (), dll. Seperti yang Anda lakukan dengan RData.

Rds menyimpan satu objek R. Namun, di luar penjelasan sederhana itu, ada beberapa perbedaan dari penyimpanan "standar". Mungkin fungsi R-manual Tautan ke readRDS () ini mengklarifikasi perbedaan tersebut secara memadai.

Jadi, jawablah pertanyaan Anda:

  • Perbedaannya bukan tentang kompresi, tetapi serialisasi (Lihat halaman ini )
  • Seperti yang ditunjukkan pada halaman manual, Anda mungkin ingin menggunakannya untuk mengembalikan objek tertentu dengan nama yang berbeda, misalnya.
  • Anda dapat membacaRDS () dan menyimpan (), atau memuat () dan menyimpanRDS () secara selektif.
KenM
sumber
151

Selain jawaban @ KenM, perbedaan penting lainnya adalah, saat memuat objek yang disimpan, Anda dapat menetapkan konten Rdsfile. Tidak demikian halnya untukRda

> 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
Ricardo Saporta
sumber
Coba: x <- 1: 5 cetak (x) simpan (x, file = "x.Rda") rm (x) cetak (x) muat ("x.Rda") cetak (x)
Harlan Nelson
4
@ HarlanNelson mencobanya. Melakukan persis apa yang saya harapkan. Apa maksudmu
Gregor Thomas