รูปแบบข้อมูล R: RData, Rda, Rds เป็นต้น


226

อะไรคือความแตกต่างหลักระหว่างไฟล์. Data, .Rda และ. Rds

โดยเฉพาะอย่างยิ่ง:

  • มีความแตกต่างในการบีบอัดและอื่น ๆ ?
  • เมื่อใดควรใช้แต่ละประเภท
  • วิธีแปลงประเภทหนึ่งไปเป็นประเภทอื่น?

คำตอบ:


189

Rda เป็นเพียงชื่อย่อของ RData คุณสามารถบันทึก (), โหลด (), แนบ () ฯลฯ เช่นเดียวกับที่คุณทำกับ RData

Rds เก็บวัตถุ R เดียว แต่นอกเหนือจากคำอธิบายง่ายๆนั้นมีความแตกต่างหลายอย่างจากการจัดเก็บ "มาตรฐาน" อาจเป็นไปได้ว่าคู่มือ R-Link นี้ไปยังฟังก์ชั่น readRDS () จะอธิบายความแตกต่างดังกล่าวอย่างเพียงพอ

ดังนั้นตอบคำถามของคุณ:

  • ความแตกต่างไม่เกี่ยวกับการบีบอัด แต่เป็นอนุกรม (ดูหน้านี้ )
  • เช่นเดียวกับที่แสดงในหน้าคู่มือคุณอาจต้องการใช้มันเพื่อกู้คืนวัตถุบางอย่างที่มีชื่อแตกต่างกันเช่น
  • คุณสามารถเลือก readRDS () และ 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") พิมพ์ (x)
Harlan Nelson

4
@HarlanNelson พยายาม ทำตามที่ฉันคาดไว้ ประเด็นของคุณคืออะไร?
Gregor Thomas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.