Wat is het RDATA-bestandsformaat?
.rdata (ook geschreven als .RData) is het eigen werkruimteformaat dat wordt gebruikt door de R-omgeving voor statistische berekeningen om meerdere in-memory objecten tegelijk op te slaan en te herstellen. Door save() of save.image() aan te roepen in R, wordt een willekeurig aantal benoemde objecten - vectoren, dataframes, lijsten, functies en omgevingen - geserialiseerd in één enkel binair bestand, dat load() vervolgens rechtstreeks in de aanroepende omgeving herstelt onder hun oorspronkelijke namen.
Het bestand is gebouwd op het interne serialisatieprotocol van R. Ongecomprimeerde bestanden beginnen met de ASCII-header RDX3 (of de oudere RDX2), gevolgd door een XDR-gecodeerde binaire payload. In de praktijk comprimeert R de payload standaard met gzip, waardoor de meeste .rdata-bestanden beginnen met de gzip magic bytes 1F 8B in plaats van de ruwe serialisatieheader. Bzip2- en xz-compressie worden ook ondersteund.
Er zijn twee versies van het serialisatieformaat in algemeen gebruik:
- Versie 2 - standaard vóór R 3.5.0; breed compatibel met oudere R-installaties.
- Versie 3 - standaard sinds R 3.5.0; voegt systeemeigen metadata voor teken-codering toe en kan niet worden gelezen door eerdere R-versies.
Het nauw verwante .rds-formaat verschilt in één belangrijk opzicht: het slaat één enkel R-object op in plaats van een benoemde verzameling, en wordt geladen met readRDS() zodat de gebruiker er elke gewenste naam aan kan toekennen. Voor het uitwisselen van gegevens buiten R hebben tekstgebaseerde formaten zoals CSV of JSON vaak de voorkeur.
Beveiliging & veiligheid
RISICO: MEDIUM.RData-bestanden zijn gegevens, maar het laden ervan is niet volledig passief: een .RData-bestand kan R-objecten bevatten zoals functies, formules of promises, en het herstellen van een kwaadaardige werkruimte kan in sommige gevallen code-executie triggeren (en load() overschrijft geruisloos objecten met dezelfde naam in uw omgeving). Laad alleen .RData-bestanden van bronnen die u vertrouwt, op dezelfde manier als u een uitvoerbaar bestand zou behandelen. Bestanden zijn niet versleuteld, dus ga niet uit van privacy. Verder is er geen malware-risico bij gewone datasets.
Formaatdetails
in een notendopProgramma's die RDATA-bestanden openen
Technische details
diepe specificaties| Formaat-type | Binair geserialiseerde R-objecten; er bestaat ook een ASCII-serialisatiemodus |
| Byte-volgorde | Big-endian (XDR-netwerkbytevolgorde) |
| Standaard compressie | gzip; bzip2 en xz zijn optionele alternatieven; ongecomprimeerde modus is beschikbaar |
| Magic bytes (ongecomprimeerd v3) | 52 44 58 33 0A (ASCII „RDX3\n”); v2-bestanden gebruiken 52 44 58 32 0A („RDX2\n”) |
| Magic bytes (gecomprimeerd) | 1F 8B bij gzip-compressie (de standaard); 42 5A 68 voor bzip2; FD 37 7A 58 5A voor xz |
| Object-multipliciteit | Slaat meerdere benoemde R-objecten per bestand op (vectoren, dataframes, lijsten, functies, omgevingen) |
| Laad-commando | `load()` - herstelt alle opgeslagen objecten in de aanroepende omgeving onder hun oorspronkelijke namen |
| Opslag-commando's | `save()` voor geselecteerde objecten; `save.image()` om de volledige huidige werkruimte vast te leggen |
| Serialisatieversies | v2 (vóór R 3.5.0) en v3 (R ≥ 3.5.0); v3 bevat systeemeigen metadata voor teken-codering; v3-bestanden vereisen R 3.5.0 of later |
| MIME-type | application/octet-stream (generiek); onofficieel: application/x-r-data |
| Versleuteling | Geen ingebouwd; gevoelige werkruimtes moeten op OS- of containerniveau worden beveiligd |
| Integriteitscontrole | Geen intrinsieke checksum; de compressie-wrapper kan bitrot detecteren, maar er is geen hash per object |
| Platformondersteuning | Cross-platform: Windows, macOS, Linux - elk systeem dat R draait |
| Typische bestandsgrootte | Van enkele KB tot meerdere GB, afhankelijk van de grootte en het aantal opgeslagen objecten |
| Verwant enkel-object formaat | `.rds` slaat precies één R-object op; geladen met `readRDS()` en vrij hernoembaar bij toewijzing |
| Package lazy-load database | `.rdx` (index) en `.rdb` (data) bestanden vormen samen de lazy-load database die binnen R-pakketten wordt gebruikt, gebruikmakend van dezelfde serialisatielaag |
| Uitgebracht | 1990s (with R; serialization format predates R 1.0, 2000) |
| Laatste versie | R serialization format version 3 (default since R 3.5.0, 2018) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | cran.r-project.org |
RDATA conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over RDATA-bestanden.