Hva er RDATA-filformatet?
.rdata (også skrevet .RData) er det innfødte arbeidsområdeformatet som brukes av R-miljøet for statistiske beregninger for å lagre og gjenopprette flere objekter i minnet samtidig. Ved å kalle save() eller save.image() i R, serialiseres et vilkårlig antall navngitte objekter - vektorer, datarammer, lister, funksjoner og miljøer - til en enkelt binær fil, som load() deretter gjenoppretter direkte i det gjeldende miljøet under deres opprinnelige navn.
Filen er bygget på R sin interne serialiseringsprotokoll. Ukomprimerte filer starter med ASCII-headeren RDX3 (eller den eldre RDX2) etterfulgt av en XDR-kodet binær nyttelast. I praksis komprimerer R nyttelasten med gzip som standard, så de fleste .rdata-filer starter med gzip-magiske byte 1F 8B i stedet for den rå serialiseringsheaderen. Bzip2- og xz-komprimering støttes også.
To versjoner av serialiseringsformatet er i vanlig bruk:
- Versjon 2 - standard før R 3.5.0; bredt kompatibel med eldre R-installasjoner.
- Versjon 3 - standard siden R 3.5.0; legger til metadata for innfødt tegnkoding og kan ikke leses av tidligere R-utgivelser.
Det nært beslektede .rds-formatet skiller seg ut på ett viktig punkt: det lagrer ett enkelt R-objekt i stedet for en navngitt samling, og lastes med readRDS() slik at brukeren kan tildele det et hvilket som helst navn. For deling av data portabelt utenfor R, foretrekkes ofte tekstbaserte formater som CSV eller JSON.
Sikkerhet og trygghet
RISIKO: MEDIUM.RData-filer er data, men å laste en er ikke helt passivt: en .RData kan inneholde R-objekter som funksjoner, formler eller «promises», og gjenoppretting av et ondsinnet arbeidsområde kan i visse tilfeller utløse kjøring av kode (og load() overskriver lydløst objekter med samme navn i miljøet ditt). Last kun .RData-filer fra kilder du stoler på, på samme måte som du ville behandlet enhver fil som kan inneholde kjørbar kode. Filene er ikke kryptert, så ikke anta personvern. Ellers er det ingen malware-risiko i vanlige datasett.
Formatdetaljer
i et nøtteskallsave() starter med ASCII-linjen «RDX3\n» (eldre filer «RDX2\n»), etterfulgt av en XDR-kodet serialisert nyttelast. Hvis den er lagret med gzip-komprimering (standard), starter filen i stedet med gzip-magien 1F 8B; bzip2 starter med «BZh», xz starter med «FD 37 7A 58 5A». Ukomprimerte nyttelaster bærer serialiseringsmarkøren «X\n» (58 0A). Det finnes altså ingen enkelt fast signatur ved offset-0 for alle .RData-filer.Programmer som åpner RDATA-filer
load('sti/til/fil.RData') for å gjenopprette objektene; ls() for å se hva som ble lastet. load('fil.RData'); inspiser objektene i Environment-panelet. load('fil.RData'); inspiser objektene i Environment-panelet. load('fil.RData'); inspiser objektene i Environment-panelet. load() i den nettleserbaserte RStudio - ingen lokal installasjon nødvendig. Tekniske detaljer
dyp spesifikasjon| Format-type | Binære serialiserte R-objekter; en ASCII-serialiseringsmodus eksisterer også |
| Byterekkefølge | Big-endian (XDR nettverks-byterekkefølge) |
| Standard komprimering | gzip; bzip2 og xz er valgfrie alternativer; ukomprimert modus er tilgjengelig |
| Magiske byte (ukomprimert v3) | 52 44 58 33 0A (ASCII «RDX3\n»); v2-filer bruker 52 44 58 32 0A («RDX2\n») |
| Magiske byte (komprimert) | 1F 8B ved gzip-komprimering (standard); 42 5A 68 for bzip2; FD 37 7A 58 5A for xz |
| Objekt-multiplisitet | Lagrer flere navngitte R-objekter per fil (vektorer, datarammer, lister, funksjoner, miljøer) |
| Innlastingskommando | `load()` - gjenoppretter alle lagrede objekter i det gjeldende miljøet under deres opprinnelige navn |
| Lagringskommandoer | `save()` for valgte objekter; `save.image()` for å fange hele det nåværende arbeidsområdet |
| Serialiseringsversjoner | v2 (før R 3.5.0) og v3 (R ≥ 3.5.0); v3 bygger inn metadata for innfødt tegnkoding; v3-filer krever R 3.5.0 eller nyere |
| MIME-type | application/octet-stream (generisk); uoffisiell: application/x-r-data |
| Kryptering | Ingen innebygd; sensitive arbeidsområder må beskyttes på OS- eller containernivå |
| Integritetskontroll | Ingen iboende sjekksum; komprimeringslaget kan oppdage bitfeil, men det finnes ingen hash per objekt |
| Plattformstøtte | Plattformuavhengig: Windows, macOS, Linux - alle systemer som kjører R |
| Typisk filstørrelse | Fra noen få KB til flere GB, avhengig av størrelsen og antallet objekter som er lagret |
| Beslektet enkeltobjekt-format | `.rds` lagrer nøyaktig ett R-objekt; lastes med `readRDS()` og kan fritt navngis ved tildeling |
| Database for pakke-lazy-load | `.rdx` (indeks) og `.rdb` (data) filer danner sammen lazy-load-databasen som brukes i R-pakker, og deler det samme serialiseringslaget |
| Utgitt | 1990s (with R; serialization format predates R 1.0, 2000) |
| Siste versjon | R serialization format version 3 (default since R 3.5.0, 2018) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | cran.r-project.org |
RDATA-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om RDATA-filer.
Ofte stilte spørsmål
Hvordan åpner jeg en RData-fil?
load('sti/til/fil.RData'). Dette gjenoppretter alle lagrede objekter i økten din under deres opprinnelige navn - kjør ls() for å se dem. RData er binær, så et tekstredigeringsprogram vil ikke vise lesbart innhold.Hva er forskjellen mellom .RData og .rds?
Hvordan konverterer jeg RData til CSV?
load('fil.RData'), og bruk deretter write.csv(dinDataramme, 'ut.csv') for hver dataramme du ønsker å eksportere.Kan jeg åpne en RData-fil uten R?
pyreadr kan lese mange .RData-filer, men R er den pålitelige veien, for så å eksportere til CSV/Excel for andre verktøy.Hvorfor vil ikke RData-filen min lastes i R?
Er det trygt å åpne en RData-fil fra noen andre?
load() kan overskrive dine egne objekter, så åpne kun filer fra kilder du stoler på - behandle ukjente .RData-filer som enhver fil som kan kjøre kode.