Hva er RDS-filformatet?
En .rds-fil er en R Data Serialization-fil produsert av Rs saveRDS()-funksjon. Den lagrer nøyaktig ett R-objekt - en data frame, liste, modell, vektor eller hvilken som helst annen R-struktur - i Rs innebygde binære serialiseringsformat. Til forskjell fra .RData-filer opprettet med save(), som gjenoppretter navngitte objekter direkte i det globale miljøet, lastes .rds-filer med readRDS() og returneres som en verdi som brukeren kan tildele et hvilket som helst variabelnavn.
Som standard er de serialiserte dataene pakket inn i gzip-komprimering, så de fleste .rds-filer åpnes som gzip-strømmer hvis de ikke håndteres som R-objekter (magic bytes 1F 8B). Komprimering kan også settes til bzip2, xz, eller deaktiveres helt med saveRDS(obj, file, compress = FALSE).
R støtter to versjoner av serialiseringsformatet: versjon 2 (R 1.4-3.4, standard før R 3.5.0) og versjon 3 (standard siden R 3.5.0, utgitt april 2018), som legger til eksplisitte metadata for tegnkoding for strenger - viktig for ikke-ASCII-tekst. Filstørrelser varierer fra noen få kilobyte for små vektorer til flere gigabyte for store data frames eller komplekse modeller.
.rds-filer er standardenheten for lagring av R-objekter: analytikere bruker dem til å mellomlagre resultater, dele trente modellobjekter og lagre prosesserte data mellom økter. For interoperable kolonnebaserte data som deles på tvers av verktøy, foretrekkes i økende grad formater som .parquet; .rds forblir det foretrukne valget når mottakeren alltid bruker R.
Sikkerhet og trygghet
RISIKO: MEDIUMRDS-filer kan inneholde vilkårlig R-kode via closures, S4-metoder eller R5/R6-klasse-miljøer. readRDS() evaluerer promises og aktive bindinger ved tilgang. Ikke åpne .rds-filer fra upålitelige kilder i R, da ondsinnede objekter kan utføre kode under deserialisering. R Core Team har påpekt denne risikoen i dokumentasjonen.
Formatdetaljer
i et nøtteskall- Ray Dream Studio Scene File - Gammelt 3D-animasjonsformat fra 1990-tallet av Ray Dream Inc. / MetaCreations (senere Carrara/DAZ); binært med magic «RD » (0x33 0x44 0x43 0x20 i hex «3DC »); programvaren er foreldet, filer kan ikke leses av moderne verktøy.
Programmer som åpner RDS-filer
Tekniske detaljer
dyp spesifikasjon| Koding | Binær (gzip-komprimert som standard); bzip2, xz eller ukomprimerte varianter støttes også |
| Objekter lagret | Nøyaktig ett R-objekt per fil - enhver SEXP-type: vektor, liste, data.frame, modell, miljøreferanse, osv. |
| Versjon av serialiseringsformat | Versjon 2 (R 1.4-3.4) eller versjon 3 (R 3.5+, standard siden 2018); versjonsnummer lagret i strøm-headeren |
| Standard komprimering | gzip (compress=TRUE); alternativer: bzip2, xz, eller ingen (compress=FALSE) |
| Magic bytes | 1F 8B (gzip-header, komprimert); 58 0A (XDR ukomprimert); 41 0A (ASCII ukomprimert) |
| Byterekkefølge | Big-endian XDR (External Data Representation) for den rå serialiseringsstrømmen; komprimeringsinnpakningen er plattformuavhengig |
| Serialiseringsomfang | Enkelt R-objekt (i motsetning til .RData som lagrer ett eller flere navngitte objekter som gjenopprettes i det kallende miljøet) |
| Metadata for tegnkoding | Versjon 3-formatet bygger inn eksplisitte metadata for tegnkoding for strenger, noe som muliggjør korrekt håndtering av ikke-ASCII-innhold |
| Typisk filstørrelse | Noen få KB (små vektorer) til flere GB (store data frames, trente maskinlæringsmodeller) |
| Lese-/skrivefunksjoner | readRDS() returnerer objektet som en verdi; saveRDS() skriver det - brukeren tildeler variabelnavn ved innlasting |
| Plattformkompatibilitet | Plattformuavhengig; Windows, Linux og macOS produserer identiske serialiseringsstrømmer |
| Verifisering av komprimering | Inspiser magic bytes med en hex-editor; eller bruk Rs gzcon() / file() tilkoblingsfunksjoner for å bekrefte gzip-innpakning |
| Utgitt | 2001 (R 1.4.0, saveRDS/readRDS introduced) |
| Siste versjon | Serialization format version 3 (R 3.5.0, 2018) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | stat.ethz.ch |
RDS-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om RDS-filer.
Ofte stilte spørsmål
Hvordan åpner jeg en RDS-fil?
mydata <- readRDS('fil.rds'). I RStudio, klikk på filen i Files-panelet. For Python: bruk rpy2-pakken.Hva inneholder en RDS-fil?
Kan jeg åpne en RDS-fil uten R?
Hva er forskjellen mellom .rds og .RData/.rda?
Er en RDS-fil det samme som en Ray Dream 3D-fil?
Kan jeg konvertere en RDS-fil til CSV?
write.csv(readRDS('fil.rds'), 'ut.csv') i R. For komplekse objekter må du trekke ut de tabulære delene manuelt først.