Che cos'è il formato di file RDATA?
.rdata (scritto anche .RData) è il formato nativo del workspace utilizzato dall' ambiente di calcolo statistico R per salvare e ripristinare più oggetti in memoria contemporaneamente. Chiamando save() o save.image() in R, viene serializzato un numero qualsiasi di oggetti con nome - vettori, data frame, liste, funzioni e ambienti - in un singolo file binario, che load() ripristina poi direttamente nell'ambiente chiamante con i loro nomi originali.
Il file è basato sul protocollo di serializzazione interno di R. I file non compressi iniziano con l'intestazione ASCII RDX3 (o la più vecchia RDX2) seguita da un payload binario codificato in XDR. In pratica, R comprime il payload con gzip per impostazione predefinita, quindi la maggior parte dei file .rdata inizia con i magic bytes di gzip 1F 8B invece che con l'intestazione di serializzazione grezza. Sono supportate anche le compressioni bzip2 e xz.
Sono comunemente in uso due versioni del formato di serializzazione:
- Versione 2 - predefinita prima di R 3.5.0; ampiamente compatibile con le installazioni di R più vecchie.
- Versione 3 - predefinita da R 3.5.0; aggiunge metadati nativi per la codifica dei caratteri e non può essere letta dalle versioni precedenti di R.
Il formato correlato .rds differisce per un aspetto chiave: memorizza un singolo oggetto R invece di una raccolta con nome, e viene caricato con readRDS() in modo che l'utente possa assegnargli qualsiasi nome. Per condividere dati in modo portabile al di fuori di R, sono spesso preferiti formati basati su testo come CSV o JSON.
Sicurezza e incolumità
RISCHIO: MEDIUMI file .RData sono dati, ma caricarne uno non è un'operazione del tutto passiva: un .RData può contenere oggetti R come funzioni, formule o promise, e il ripristino di un workspace malevolo può in alcuni casi innescare l'esecuzione di codice (e load() sovrascrive silenziosamente gli oggetti con lo stesso nome nel tuo ambiente). Carica solo file .RData da fonti di cui ti fidi, allo stesso modo in cui tratteresti qualsiasi file che contiene eseguibili. I file non sono crittografati, quindi non dare per scontata la privacy. Per il resto, non c'è rischio di malware nei dataset ordinari.
Dettagli del formato
in sintesiProgrammi che aprono file RDATA
Dettagli tecnici
specifiche approfondite| Tipo di formato | Oggetti R serializzati binari; esiste anche una modalità di serializzazione ASCII |
| Ordine dei byte | Big-endian (ordine dei byte di rete XDR) |
| Compressione predefinita | gzip; bzip2 e xz sono alternative opzionali; è disponibile la modalità non compressa |
| Magic bytes (non compresso v3) | 52 44 58 33 0A (ASCII «RDX3\n»); i file v2 usano 52 44 58 32 0A («RDX2\n») |
| Magic bytes (compresso) | 1F 8B se compresso con gzip (predefinito); 42 5A 68 per bzip2; FD 37 7A 58 5A per xz |
| Molteplicità degli oggetti | Memorizza più oggetti R con nome per file (vettori, data frame, liste, funzioni, ambienti) |
| Comando di caricamento | `load()` - ripristina tutti gli oggetti salvati nell'ambiente chiamante con i loro nomi originali |
| Comandi di salvataggio | `save()` per oggetti selezionati; `save.image()` per catturare l'intero workspace corrente |
| Versioni di serializzazione | v2 (pre-R 3.5.0) e v3 (R ≥ 3.5.0); la v3 incorpora metadati nativi per la codifica dei caratteri; i file v3 richiedono R 3.5.0 o versioni successive |
| Tipo MIME | application/octet-stream (generico); non ufficiale: application/x-r-data |
| Crittografia | Nessuna integrata; i workspace sensibili devono essere protetti a livello di sistema operativo o container |
| Controllo integrità | Nessun checksum intrinseco; il wrapper di compressione può rilevare il bitrot, ma non esiste un hash per singolo oggetto |
| Supporto piattaforma | Cross-platform: Windows, macOS, Linux - qualsiasi sistema che esegua R |
| Dimensione tipica del file | Da pochi KB a diversi GB, a seconda della dimensione e del numero di oggetti salvati |
| Formato gemello per oggetto singolo | `.rds` memorizza esattamente un oggetto R; caricato con `readRDS()` e rinominabile liberamente all'assegnazione |
| Database lazy-load dei pacchetti | I file `.rdx` (indice) e `.rdb` (dati) formano insieme il database di caricamento pigro usato nei pacchetti R, condividendo lo stesso livello di serializzazione |
| Rilasciato | 1990s (with R; serialization format predates R 1.0, 2000) |
| Ultima versione | R serialization format version 3 (default since R 3.5.0, 2018) |
| Standard aperto | Sì · royalty-free |
| Specifica | cran.r-project.org |
Conversioni RDATA
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file RDATA.