Vad är filformatet RDS?
En .rds-fil är en R Data Serialization-fil skapad av R-funktionen saveRDS(). Den lagrar exakt ett R-objekt - en dataram, lista, modell, vektor eller någon annan R-struktur - i R:s inbyggda binära serialiseringsformat. Till skillnad från .RData-filer skapade med save(), som återställer namngivna objekt direkt i den globala miljön, laddas .rds-filer med readRDS() och returneras som ett värde som användaren kan tilldela valfritt variabelnamn.
Som standard är den serialiserade datan inbäddad i gzip-komprimering, så de flesta .rds-filer öppnas som gzip-strömmar om de inte hanteras som R-objekt (magic bytes 1F 8B). Komprimering kan även ställas in till bzip2, xz eller inaktiveras helt med saveRDS(obj, file, compress = FALSE).
R stöder två versioner av serialiseringsformatet: version 2 (R 1.4-3.4, standard före R 3.5.0) och version 3 (standard sedan R 3.5.0, släppt april 2018), som lägger till explicit metadata för teckenkodning för strängar - viktigt för icke-ASCII-text. Filstorlekar varierar från några kilobyte för små vektorer till flera gigabyte för stora dataramar eller komplexa modeller.
.rds-filer är standardenheten för persistens av R-objekt: analytiker använder dem för att cachelagra mellanresultat, dela tränade modellobjekt och lagra bearbetad data mellan sessioner. För interoperabel kolumnär data som delas mellan olika verktyg föredras alltmer format som .parquet; .rds förblir det givna valet när konsumenten alltid är R.
Säkerhet & trygghet
RISK: MEDIUMRDS-filer kan bädda in godtycklig R-kod via closures, S4-metoder eller R5/R6-klassmiljöer. readRDS() utvärderar «promises» och aktiva bindningar vid åtkomst. Öppna inte .rds-filer från okända källor i R, eftersom illvilligt utformade objekt kan exekvera kod under deserialisering. R Core Team har noterat denna risk i dokumentationen.
Formatdetaljer
i ett nötskal- Ray Dream Studio Scene File - Föråldrat 3D-animationsformat från 1990-talet av Ray Dream Inc. / MetaCreations (senare Carrara/DAZ); binärt med magic 'RD ' (0x33 0x44 0x43 0x20 i hex '3DC '); programvaran är övergiven, filerna kan inte läsas av moderna verktyg.
Program som öppnar RDS-filer
readRDS(). import rpy2.robjects as ro; obj = ro.r'readRDS' - konverterar RDS till Python R-objekt. readRDS() i konsolen - ingen lokal R-installation krävs. Tekniska detaljer
djup specifikation| Kodning | Binär (gzip-komprimerad som standard); bzip2, xz eller okomprimerade varianter stöds också |
| Objekt som lagras | Exakt ett R-objekt per fil - valfri SEXP-typ: vektor, lista, data.frame, modell, miljöreferens, etc. |
| Version av serialiseringsformat | Version 2 (R 1.4-3.4) eller version 3 (R 3.5+, standard sedan 2018); versionsnummer lagras i strömmens huvud |
| Standardkomprimering | gzip (compress=TRUE); alternativ: bzip2, xz eller ingen (compress=FALSE) |
| Magic bytes | 1F 8B (gzip-header, komprimerad); 58 0A (XDR okomprimerad); 41 0A (ASCII okomprimerad) |
| Byteordning | Big-endian XDR (External Data Representation) för den råa serialiseringsströmmen; komprimeringshöljet är plattformsoberoende |
| Serialiseringsomfång | Enstaka R-objekt (till skillnad från .RData som lagrar ett eller flera namngivna objekt som återställs i den anropande miljön) |
| Metadata för teckenkodning | Version 3-formatet bäddar in explicit metadata för teckenkodning för strängar, vilket möjliggör korrekt hantering av icke-ASCII-innehåll |
| Typisk filstorlek | Några KB (små vektorer) till flera GB (stora dataramar, tränade maskininlärningsmodeller) |
| Läs/skriv-funktioner | `readRDS()` returnerar objektet som ett värde; `saveRDS()` skriver det - användaren tilldelar valfritt variabelnamn vid inläsning |
| Plattformskompatibilitet | Plattformsoberoende; Windows, Linux och macOS producerar identiska serialiseringsströmmar |
| Verifiering av komprimering | Inspektera magic bytes med en hex-redigerare; eller använd R:s funktioner `gzcon()` / `file()` för att bekräfta gzip-inbäddning |
| Släppt | 2001 (R 1.4.0, saveRDS/readRDS introduced) |
| Senaste version | Serialization format version 3 (R 3.5.0, 2018) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | stat.ethz.ch |
RDS-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om RDS-filer.
Vanliga frågor
Hur öppnar jag en RDS-fil?
mydata <- readRDS('fil.rds'). I RStudio, klicka på filen i panelen «Files». För Python: använd paketet rpy2.Vad innehåller en RDS-fil?
Kan jag öppna en RDS-fil utan R?
Vad är skillnaden mellan .rds och .RData/.rda?
.rds lagrar ett namnlöst objekt (användaren tilldelar namnet vid inläsning). .RData/.rda lagrar ett eller flera namngivna objekt som laddas direkt in i R-miljön.Är en RDS-fil samma sak som en Ray Dream 3D-fil?
.rds, men den programvaran är sedan länge övergiven. Idag är praktiskt taget alla .rds-filer du stöter på serialiseringsfiler för språket R.Kan jag konvertera en RDS-fil till CSV?
write.csv(readRDS('fil.rds'), 'ut.csv') i R. För komplexa objekt måste du extrahera de tabellformade delarna manuellt först.