¿Qué es el formato de archivo RDATA?
.rdata (también escrito .RData) es el formato de espacio de trabajo nativo utilizado por el entorno de computación estadística R para guardar y restaurar múltiples objetos en memoria a la vez. Al llamar a save() o save.image() en R, se serializa cualquier número de objetos con nombre (vectores, marcos de datos, listas, funciones y entornos) en un único archivo binario, que load() restaura directamente en el entorno de llamada bajo sus nombres originales.
El archivo se basa en el protocolo de serialización interno de R. Los archivos sin comprimir comienzan con el encabezado ASCII RDX3 (o el más antiguo RDX2) seguido de una carga útil binaria codificada en XDR. En la práctica, R comprime la carga útil con gzip de forma predeterminada, por lo que la mayoría de los archivos .rdata comienzan con los bytes mágicos de gzip 1F 8B en lugar del encabezado de serialización sin procesar. También se admiten las compresiones Bzip2 y xz.
Existen dos versiones del formato de serialización de uso común:
- Versión 2: predeterminada antes de R 3.5.0; ampliamente compatible con instalaciones de R más antiguas.
- Versión 3: predeterminada desde R 3.5.0; añade metadatos nativos de codificación de caracteres y no puede ser leída por versiones anteriores de R.
El formato .rds, estrechamente relacionado, difiere en un aspecto clave: almacena un único objeto R en lugar de una colección con nombre, y se carga con readRDS() para que el usuario pueda asignarle cualquier nombre. Para compartir datos de forma portátil fuera de R, suelen preferirse los formatos basados en texto como CSV o JSON.
Seguridad y protección
RIESGO: MEDIUMLos archivos .RData son datos, pero cargar uno no es algo enteramente pasivo: un .RData puede contener objetos de R como funciones, fórmulas o promesas, y restaurar un espacio de trabajo malicioso puede, en algunos casos, activar la ejecución de código (y load() sobrescribe silenciosamente objetos con el mismo nombre en su entorno). Solo cargue archivos .RData de fuentes en las que confíe, de la misma manera que trataría cualquier archivo que contenga ejecutables. Los archivos no están cifrados, así que no asuma privacidad. Por lo demás, no hay riesgo de malware en conjuntos de datos ordinarios.
Detalles del formato
en pocas palabrassave() comienza con la línea ASCII «RDX3\n» (archivos más antiguos «RDX2\n»), luego una carga útil serializada codificada en XDR. Si se guarda comprimido con gzip (el predeterminado), el archivo comienza en su lugar con la firma mágica de gzip 1F 8B; bzip2 comienza con «BZh», xz comienza con «FD 37 7A 58 5A». Las cargas útiles sin comprimir llevan el marcador de serialización «X\n» (58 0A). Por lo tanto, no existe una única firma fija en el desplazamiento 0 para todos los archivos .RData.Programas que abren archivos RDATA
load('ruta/al/archivo.RData') para restaurar los objetos; use ls() para ver qué se cargó. load('archivo.RData'); inspeccione los objetos en el panel de Entorno. load('archivo.RData'); inspeccione los objetos en el panel de Entorno. load('archivo.RData'); inspeccione los objetos en el panel de Entorno. load() en el RStudio basado en navegador; sin instalación local. Detalles técnicos
especificación profunda| Tipo de formato | Objetos R serializados binarios; también existe un modo de serialización ASCII |
| Orden de bytes | Big-endian (orden de bytes de red XDR) |
| Compresión predeterminada | gzip; bzip2 y xz son alternativas opcionales; el modo sin comprimir está disponible |
| Bytes mágicos (v3 sin comprimir) | 52 44 58 33 0A (ASCII «RDX3\n»); los archivos v2 usan 52 44 58 32 0A («RDX2\n») |
| Bytes mágicos (comprimidos) | 1F 8B cuando está comprimido con gzip (el predeterminado); 42 5A 68 para bzip2; FD 37 7A 58 5A para xz |
| Multiplicidad de objetos | Almacena múltiples objetos R con nombre por archivo (vectores, marcos de datos, listas, funciones, entornos) |
| Comando de carga | `load()`: restaura todos los objetos guardados en el entorno de llamada bajo sus nombres originales |
| Comandos de guardado | `save()` para objetos seleccionados; `save.image()` para capturar todo el espacio de trabajo actual |
| Versiones de serialización | v2 (anterior a R 3.5.0) y v3 (R ≥ 3.5.0); v3 incrusta metadatos nativos de codificación de caracteres; los archivos v3 requieren R 3.5.0 o posterior |
| Tipo MIME | application/octet-stream (genérico); no oficial: application/x-r-data |
| Cifrado | Ninguno integrado; los espacios de trabajo sensibles deben protegerse a nivel de SO o contenedor |
| Comprobación de integridad | Sin suma de comprobación intrínseca; el contenedor de compresión puede detectar corrupción de bits, pero no hay un hash por objeto |
| Soporte de plataforma | Multiplataforma: Windows, macOS, Linux; cualquier sistema que ejecute R |
| Tamaño de archivo típico | Desde unos pocos KB hasta varios GB, dependiendo del tamaño y número de objetos guardados |
| Formato hermano de objeto único | `.rds` almacena exactamente un objeto R; se carga con `readRDS()` y se renombra libremente al asignarlo |
| Base de datos de carga diferida de paquetes | Los archivos `.rdx` (índice) y `.rdb` (datos) forman juntos la base de datos de carga diferida utilizada dentro de los paquetes de R, compartiendo la misma capa de serialización |
| Lanzado | 1990s (with R; serialization format predates R 1.0, 2000) |
| Última versión | R serialization format version 3 (default since R 3.5.0, 2018) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | cran.r-project.org |
Conversiones de RDATA
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos RDATA.
Preguntas frecuentes
¿Cómo abro un archivo RData?
load('ruta/al/archivo.RData'). Eso restaura todos los objetos guardados en su sesión bajo sus nombres originales; ejecute ls() para verlos. RData es binario, por lo que un editor de texto no mostrará contenido legible.¿Cuál es la diferencia entre .RData y .rds?
save/load) almacena múltiples objetos con nombre y los devuelve bajo esos mismos nombres. .rds (vía saveRDS/readRDS) almacena un solo objeto que usted asigna a cualquier nombre al cargar. Para un solo objeto, .rds suele ser más limpio.¿Cómo convierto RData a CSV?
load('archivo.RData'), luego write.csv(suDataFrame, 'salida.csv') para cada marco de datos que desee exportar.¿Puedo abrir un archivo RData sin R?
pyreadr de Python puede leer muchos archivos .RData, pero R es la vía más fiable, para luego exportar a CSV/Excel para otras herramientas.¿Por qué mi archivo RData no se carga en R?
¿Es seguro abrir un archivo RData de otra persona?
load() puede sobrescribir sus objetos, así que solo abra archivos de fuentes en las que confíe; trate los .RData desconocidos como cualquier archivo que pudiera ejecutar código.