Was ist das RDS-Dateiformat?
Eine .rds-Datei ist eine R Data Serialization-Datei, die mit der R-Funktion saveRDS() erstellt wurde. Sie speichert genau ein R-Objekt - einen Data Frame, eine Liste, ein Modell, einen Vektor oder eine andere R-Struktur - im nativen binären Serialisierungsformat von R. Im Gegensatz zu .RData-Dateien, die mit save() erstellt werden und benannte Objekte direkt in die globale Umgebung wiederherstellen, werden .rds-Dateien mit readRDS() geladen und als Wert zurückgegeben, den der Aufrufer einem beliebigen Variablennamen zuweisen kann.
Standardmäßig sind die serialisierten Daten in eine gzip-Komprimierung eingepackt, sodass die meisten .rds-Dateien als gzip-Streams geöffnet werden, wenn sie nicht als R-Objekte behandelt werden (Magic Bytes 1F 8B). Die Komprimierung kann auch auf bzip2, xz eingestellt oder mit saveRDS(obj, file, compress = FALSE) ganz deaktiviert werden.
R unterstützt zwei Versionen des Serialisierungsformats: Version 2 (R 1.4-3.4, Standard vor R 3.5.0) und Version 3 (Standard seit R 3.5.0, veröffentlicht im April 2018), die explizite Kodierungs-Metadaten für Zeichenketten hinzufügt - wichtig für Nicht-ASCII-Texte. Die Dateigrößen reichen von wenigen Kilobyte für kleine Vektoren bis zu mehreren Gigabyte für große Data Frames oder komplexe Modelle.
.rds-Dateien sind die Standardeinheit für die Persistenz von R-Objekten: Analysten verwenden sie, um Zwischenergebnisse zwischenzuspeichern, trainierte Modellobjekte zu teilen und verarbeitete Daten zwischen Sitzungen zu speichern. Für interoperable spaltenbasierte Daten, die werkzeugübergreifend genutzt werden, werden Formate wie .parquet zunehmend bevorzugt; .rds bleibt die erste Wahl, wenn der Konsument immer R ist.
Sicherheit
RISIKO: MEDIUMRDS-Dateien können über Closures, S4-Methoden oder R5/R6-Klassenumgebungen beliebigen R-Code einbetten. readRDS() wertet Promises und aktive Bindungen beim Zugriff aus. Öffnen Sie keine .rds-Dateien aus nicht vertrauenswürdigen Quellen in R, da bösartig gestaltete Objekte während der Deserialisierung Code ausführen könnten. Das R Core Team hat auf dieses Risiko in der Dokumentation hingewiesen.
Formatdetails
kurz gefasst- Ray Dream Studio Scene File - Veraltetes 3D-Animationsformat aus den 1990er Jahren von Ray Dream Inc. / MetaCreations (später Carrara/DAZ); binär mit Magic „RD “ (0x33 0x44 0x43 0x20 in Hex „3DC “); die Software wurde eingestellt, Dateien sind mit modernen Werkzeugen nicht lesbar.
Programme zum Öffnen von RDS-Dateien
readRDS() in der Konsole aus. readRDS() in der Konsole aus. readRDS(). import rpy2.robjects as ro; obj = ro.r'readRDS' - konvertiert RDS in Python-R-Objekte. readRDS() in der Konsole - keine lokale R-Installation erforderlich. Technische Details
technische Spezifikation| Kodierung | Binär (standardmäßig gzip-komprimiert); bzip2, xz oder unkomprimierte Varianten werden ebenfalls unterstützt |
| Gespeicherte Objekte | Genau ein R-Objekt pro Datei - jeder SEXP-Typ: Vektor, Liste, data.frame, Modell, Umgebungsreferenz usw. |
| Version des Serialisierungsformats | Version 2 (R 1.4-3.4) oder Version 3 (R 3.5+, Standard seit 2018); Versionsnummer im Stream-Header gespeichert |
| Standardkomprimierung | gzip (compress=TRUE); Alternativen: bzip2, xz oder keine (compress=FALSE) |
| Magic Bytes | 1F 8B (gzip-Header, komprimiert); 58 0A (XDR unkomprimiert); 41 0A (ASCII unkomprimiert) |
| Byte-Reihenfolge | Big-endian XDR (External Data Representation) für den rohen Serialisierungs-Stream; der Komprimierungs-Wrapper ist plattformunabhängig |
| Serialisierungsumfang | Einzelnes R-Objekt (im Gegensatz zu .RData, das ein oder mehrere benannte Objekte speichert, die in die aufrufende Umgebung geladen werden) |
| Metadaten zur Zeichenkodierung | Das Format der Version 3 bettet explizite Kodierungs-Metadaten für Zeichenketten ein, was die korrekte Handhabung von Nicht-ASCII-Inhalten ermöglicht |
| Typische Dateigröße | Einige KB (kleine Vektoren) bis zu mehreren GB (große Data Frames, trainierte Machine-Learning-Modelle) |
| Lese-/Schreibfunktionen | `readRDS()` gibt das Objekt als Wert zurück; `saveRDS()` schreibt es - der Aufrufer weist beim Laden einen beliebigen Variablennamen zu |
| Plattformkompatibilität | Plattformübergreifend; Windows, Linux und macOS erzeugen identische Serialisierungs-Streams |
| Überprüfung der Komprimierung | Untersuchen Sie die Magic Bytes mit einem Hex-Editor oder verwenden Sie die Verbindungsfunktionen `gzcon()` / `file()` von R, um die gzip-Verpackung zu bestätigen |
| Veröffentlicht | 2001 (R 1.4.0, saveRDS/readRDS introduced) |
| Neueste Version | Serialization format version 3 (R 3.5.0, 2018) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | stat.ethz.ch |
RDS-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu RDS-Dateien.
Häufig gestellte Fragen
Wie öffne ich eine RDS-Datei?
mydata <- readRDS('file.rds'). In RStudio klicken Sie auf die Datei im Bereich „Files“. Für Python: Verwenden Sie das Paket rpy2.Was enthält eine RDS-Datei?
Kann ich eine RDS-Datei ohne R öffnen?
Was ist der Unterschied zwischen .rds und .RData/.rda?
.rds speichert ein unbenanntes Objekt (der Aufrufer weist den Namen beim Laden zu). .RData/.rda speichert ein oder mehrere benannte Objekte, die direkt in die R-Umgebung geladen werden.Ist eine RDS-Datei dasselbe wie eine Ray Dream 3D-Datei?
.rds, aber diese Software ist längst eingestellt. Heute sind praktisch alle .rds-Dateien, auf die Sie stoßen, Serialisierungsdateien der Sprache R.Kann ich eine RDS-Datei in CSV konvertieren?
write.csv(readRDS('file.rds'), 'out.csv') in R. Bei komplexen Objekten müssen Sie die tabellarischen Teile zuerst manuell extrahieren.