Qu'est-ce que le format de fichier RDATA ?
.rdata (également écrit .RData) est le format d'espace de travail natif utilisé par l' environnement de calcul statistique R pour sauvegarder et restaurer plusieurs objets en mémoire à la fois. L'appel de save() ou save.image() dans R sérialise n'importe quel nombre d'objets nommés - vecteurs, data frames, listes, fonctions et environnements - dans un seul fichier binaire, que load() restaure ensuite directement dans l'environnement d'appel sous leurs noms d'origine.
Le fichier est construit sur le protocole de sérialisation interne de R. Les fichiers non compressés commencent par l'en-tête ASCII RDX3 (ou l'ancien RDX2) suivi d'une charge utile binaire encodée en XDR. En pratique, R compresse la charge utile avec gzip par défaut, de sorte que la plupart des fichiers .rdata commencent par les octets magiques gzip 1F 8B plutôt que par l'en-tête de sérialisation brut. La compression Bzip2 et xz est également prise en charge.
Deux versions du format de sérialisation sont couramment utilisées :
- Version 2 - par défaut avant R 3.5.0 ; largement compatible avec les anciennes installations de R.
- Version 3 - par défaut depuis R 3.5.0 ; ajoute des métadonnées d'encodage de caractères natifs et ne peut pas être lu par les versions antérieures de R.
Le format .rds, étroitement lié, diffère sur un point clé : il stocke un seul objet R plutôt qu'une collection nommée, et est chargé avec readRDS() afin que l'appelant puisse lui attribuer n'importe quel nom. Pour partager des données de manière portable en dehors de R, les formats textuels tels que CSV ou JSON sont souvent préférés.
Sécurité et sûreté
RISQUE : MEDIUMLes fichiers .RData sont des données, mais en charger un n'est pas entièrement passif : un .RData peut contenir des objets R tels que des fonctions, des formules ou des promesses, et la restauration d'un espace de travail malveillant peut dans certains cas déclencher l'exécution de code (et load() écrase silencieusement les objets du même nom dans votre environnement). Ne chargez que des fichiers .RData provenant de sources de confiance, de la même manière que vous traiteriez n'importe quel fichier contenant des exécutables. Les fichiers ne sont pas chiffrés, ne présumez donc pas de leur confidentialité. Sinon, il n'y a pas de risque de malware dans les jeux de données ordinaires.
Détails du format
en brefsave() commence par la ligne ASCII « RDX3\n » (fichiers plus anciens « RDX2\n »), puis une charge utile sérialisée encodée en XDR. S'il est sauvegardé avec une compression gzip (par défaut), le fichier commence plutôt par l'octet magique gzip 1F 8B ; bzip2 commence par « BZh », xz commence par « FD 37 7A 58 5A ». Les charges utiles non compressées portent le marqueur de sérialisation « X\n » (58 0A). Il n'y a donc pas de signature fixe unique à l'offset 0 pour tous les fichiers .RData.Programmes qui ouvrent les fichiers RDATA
load('chemin/vers/fichier.RData') pour restaurer les objets ; ls() pour voir ce qui a été chargé. load('file.RData') ; inspectez les objets dans le volet Environnement. load('file.RData') ; inspectez les objets dans le volet Environnement. load('file.RData') ; inspectez les objets dans le volet Environnement. load() dans le RStudio basé sur le navigateur - aucune installation locale n'est requise. Détails techniques
spécifications approfondies| Type de format | Objets R sérialisés binaires ; un mode de sérialisation ASCII existe également |
| Ordre des octets | Big-endian (ordre d'octets réseau XDR) |
| Compression par défaut | gzip ; bzip2 et xz sont des alternatives optionnelles ; le mode non compressé est disponible |
| Octets magiques (v3 non compressé) | 52 44 58 33 0A (ASCII « RDX3\n ») ; les fichiers v2 utilisent 52 44 58 32 0A (« RDX2\n ») |
| Octets magiques (compressé) | 1F 8B pour la compression gzip (par défaut) ; 42 5A 68 pour bzip2 ; FD 37 7A 58 5A pour xz |
| Multiplicité d'objets | Stocke plusieurs objets R nommés par fichier (vecteurs, data frames, listes, fonctions, environnements) |
| Commande de chargement | `load()` - restaure tous les objets sauvegardés dans l'environnement d'appel sous leurs noms d'origine |
| Commandes de sauvegarde | `save()` pour les objets sélectionnés ; `save.image()` pour capturer l'intégralité de l'espace de travail actuel |
| Versions de sérialisation | v2 (avant R 3.5.0) et v3 (R ≥ 3.5.0) ; la v3 intègre des métadonnées d'encodage de caractères natifs ; les fichiers v3 nécessitent R 3.5.0 ou ultérieur |
| Type MIME | application/octet-stream (générique) ; non officiel : application/x-r-data |
| Chiffrement | Aucun intégré ; les espaces de travail sensibles doivent être protégés au niveau de l'OS ou du conteneur |
| Vérification d'intégrité | Pas de somme de contrôle intrinsèque ; l'enveloppe de compression peut détecter la corruption de bits, mais il n'y a pas de hachage par objet |
| Support plateforme | Multiplateforme : Windows, macOS, Linux - tout système exécutant R |
| Taille de fichier typique | De quelques Ko à plusieurs Go, selon la taille et le nombre d'objets sauvegardés |
| Format frère pour objet unique | `.rds` stocke exactement un objet R ; chargé avec `readRDS()` et renommé librement lors de l'affectation |
| Base de données de chargement différé de package | Les fichiers `.rdx` (index) et `.rdb` (données) forment ensemble la base de données de chargement différé utilisée dans les packages R, partageant la même couche de sérialisation |
| Publié | 1990s (with R; serialization format predates R 1.0, 2000) |
| Dernière version | R serialization format version 3 (default since R 3.5.0, 2018) |
| Standard ouvert | Oui · libre de droits |
| Spécification | cran.r-project.org |
Conversions RDATA
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers RDATA.
Foire aux questions
Comment ouvrir un fichier RData ?
load('chemin/vers/fichier.RData'). Cela restaure tous les objets sauvegardés dans votre session sous leurs noms d'origine - exécutez ls() pour les voir. RData est binaire, donc un éditeur de texte n'affichera pas de contenu lisible.Quelle est la différence entre .RData et .rds ?
save/load) stocke plusieurs objets nommés et les replace sous ces noms. .rds (via saveRDS/readRDS) stocke un seul objet auquel vous attribuez n'importe quel nom lors du chargement. Pour un seul objet, .rds est généralement plus propre.Comment convertir RData en CSV ?
load('file.RData'), puis write.csv(votreDataFrame, 'out.csv') pour chaque data frame que vous souhaitez exporter.Puis-je ouvrir un fichier RData sans R ?
Pourquoi mon fichier RData ne se charge-t-il pas dans R ?
Est-il sûr d'ouvrir un fichier RData provenant de quelqu'un d'autre ?
load() peut écraser vos objets. N'ouvrez que des fichiers provenant de sources de confiance - traitez un .RData inconnu comme n'importe quel fichier capable d'exécuter du code.