Hvad er RDS-filformatet?
En .rds fil er en R Data Serialization fil produceret af R's saveRDS() funktion. Den gemmer præcis ét R-objekt - en data frame, liste, model, vektor eller enhver anden R-struktur - i R's indfødte binære serialiseringsformat. I modsætning til .RData filer oprettet med save(), som gendanner navngivne objekter direkte i det globale miljø, indlæses .rds filer med readRDS() og returneres som en værdi, som brugeren kan tildele et vilkårligt variabelnavn.
Som standard er de serialiserede data pakket i gzip-komprimering, så de fleste .rds filer åbnes som gzip-strømme, hvis de ikke håndteres som R-objekter (magic bytes 1F 8B). Komprimering kan også indstilles til bzip2, xz eller deaktiveres helt med saveRDS(obj, file, compress = FALSE).
R understøtter to versioner af serialiseringsformatet: version 2 (R 1.4-3.4, standard før R 3.5.0) og version 3 (standard siden R 3.5.0, udgivet april 2018), som tilføjer eksplicitte kodningsmetadata for tekststrenge - vigtigt for ikke-ASCII tekst. Filstørrelser varierer fra få kilobytes for små vektorer til adskillige gigabytes for store data frames eller komplekse modeller.
.rds filer er standardenheden for lagring af R-objekter: analytikere bruger dem til at cache mellemliggende resultater, dele trænede modelobjekter og gemme behandlede data mellem sessioner. For interoperable kolonnebaserede data delt på tværs af værktøjer foretrækkes formater som .parquet i stigende grad; .rds forbliver det foretrukne valg, når modtageren altid er R.
Sikkerhed og tryghed
RISIKO: MEDIUMRDS filer kan indlejre vilkårlig R-kode via closures, S4-metoder eller R5/R6-klasse miljøer. readRDS() evaluerer promises og aktive bindinger ved adgang. Åbn ikke .rds filer fra upålidelige kilder i R, da ondsindet udformede objekter kan eksekvere kode under deserialisering. R Core Team har bemærket denne risiko i dokumentationen.
Formatdetaljer
kort fortalt- Ray Dream Studio Scene File - Forældet 3D-animationsformat fra 1990'erne af Ray Dream Inc. / MetaCreations (senere Carrara/DAZ); binær med magic 'RD ' (0x33 0x44 0x43 0x20 i hex '3DC '); softwaren er opgivet, og filer kan ikke læses af moderne værktøjer.
Programmer der åbner RDS-filer
Tekniske detaljer
dyb specifikation| Kodning | Binær (gzip-komprimeret som standard); bzip2, xz eller ukomprimerede varianter understøttes også |
| Gemte objekter | Præcis ét R-objekt pr. fil - enhver SEXP-type: vektor, liste, data.frame, model, miljøreference osv. |
| Serialiseringsformat version | Version 2 (R 1.4-3.4) eller version 3 (R 3.5+, standard siden 2018); versionsnummer gemt i strømmens header |
| Standard komprimering | gzip (compress=TRUE); alternativer: bzip2, xz eller ingen (compress=FALSE) |
| Magic bytes | 1F 8B (gzip header, komprimeret); 58 0A (XDR ukomprimeret); 41 0A (ASCII ukomprimeret) |
| Byte-orden | Big-endian XDR (External Data Representation) for den rå serialiseringsstrøm; komprimeringsindpakningen er platformsuafhængig |
| Serialiseringsomfang | Enkelt R-objekt (i modsætning til .RData, som gemmer et eller flere navngivne objekter, der gendannes i det kaldende miljø) |
| Metadata for tegnkodning | Version 3-formatet indlejrer eksplicitte kodningsmetadata for tekststrenge, hvilket muliggør korrekt håndtering af ikke-ASCII indhold |
| Typisk filstørrelse | Få KB (små vektorer) til flere GB (store data frames, trænede machine-learning modeller) |
| Læse/skrive funktioner | readRDS() returnerer objektet som en værdi; saveRDS() skriver det - brugeren tildeler et vilkårligt variabelnavn ved indlæsning |
| Platformskompatibilitet | Platformsuafhængig; Windows, Linux og macOS producerer identiske serialiseringsstrømme |
| Verificering af komprimering | Undersøg magic bytes med en hex-editor; eller brug R's gzcon() / file() forbindelsesfunktioner til at bekræfte gzip-indpakning |
| Udgivet | 2001 (R 1.4.0, saveRDS/readRDS introduced) |
| Seneste version | Serialization format version 3 (R 3.5.0, 2018) |
| Åben standard | Ja · royaltyfri |
| Specifikation | stat.ethz.ch |
RDS-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om RDS-filer.