R-Datenformate: RData, Rda, Rds usw.


225

Was sind die Hauptunterschiede zwischen .RData-, .Rda- und .Rds-Dateien?

Genauer:

  • Gibt es Unterschiede in der Komprimierung usw.?
  • Wann sollte jeder Typ verwendet werden?
  • Wie konvertiere ich einen Typ in einen anderen?

Antworten:


188

Rda ist nur ein Kurzname für RData. Sie können einfach speichern (), laden (), anhängen () usw., genau wie Sie es mit RData tun.

Rds speichert ein einzelnes R-Objekt. Abgesehen von dieser einfachen Erklärung gibt es jedoch einige Unterschiede zu einem "Standard" -Speicher. Wahrscheinlich verdeutlicht diese R-manuelle Verknüpfung mit der Funktion readRDS () solche Unterscheidungen ausreichend.

Beantworten Sie also Ihre Fragen:

  • Der Unterschied liegt nicht in der Komprimierung, sondern in der Serialisierung (siehe diese Seite ).
  • Wie auf der Handbuchseite gezeigt, möchten Sie es möglicherweise verwenden, um beispielsweise ein bestimmtes Objekt mit einem anderen Namen wiederherzustellen.
  • Sie können RDS () und save () lesen oder selektiv load () und saveRDS ().

151

Neben der Antwort von @ KenM besteht ein weiterer wichtiger Unterschied darin, dass Sie beim Laden in ein gespeichertes Objekt den Inhalt einer RdsDatei zuweisen können . Nicht so fürRda

> 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

Versuchen Sie: x <- 1: 5 print (x) save (x, file = "x.Rda") rm (x) print (x) load ("x.Rda") print (x)
Harlan Nelson

4
@ HarlanNelson hat es versucht. Genau das getan, was ich erwartet habe. Worauf willst du hinaus?
Gregor Thomas
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.