Các định dạng dữ liệu R: RData, Rda, Rds, v.v.


226

Sự khác biệt chính giữa các tệp .RData, .Rda và .Rds là gì?

Cụ thể hơn:

  • Có sự khác biệt trong nén vv?
  • Khi nào nên sử dụng mỗi loại?
  • Làm thế nào để chuyển đổi loại này sang loại khác?

Câu trả lời:


189

Rda chỉ là một tên ngắn gọn cho RData. Bạn chỉ có thể lưu (), load (), Đính kèm (), v.v. giống như bạn làm với RData.

Rds lưu trữ một đối tượng R duy nhất . Tuy nhiên, ngoài lời giải thích đơn giản đó, có một số khác biệt so với bộ lưu trữ "tiêu chuẩn". Có lẽ hàm R-Manual Link to readRDS () này làm rõ sự khác biệt đó một cách đầy đủ.

Vì vậy, trả lời câu hỏi của bạn:

  • Sự khác biệt không phải là về nén, mà là tuần tự hóa (Xem trang này )
  • Giống như hiển thị trong trang hướng dẫn, bạn có thể muốn sử dụng nó để khôi phục một đối tượng nhất định với một tên khác, ví dụ.
  • Bạn có thể đọcRDS () và lưu () hoặc tải () và saveRDS () một cách chọn lọc.

151

Ngoài câu trả lời của @ KenM, một điểm khác biệt quan trọng khác là, khi tải vào một đối tượng đã lưu, bạn có thể gán nội dung của Rdstệp. Không phải vậyRda

> 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

Hãy thử: x <- 1: 5 print (x) save (x, file = "x.Rda") rm (x) print (x) load ("x.Rda") print (x)
Harlan Nelson

4
@HarlanNelson đã thử nó. Đã làm chính xác những gì tôi mong đợi. Ý bạn là sao?
Gregor Thomas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.