Что такое формат файла RDA?
Файл .rda (также сохраняемый как .RData) - это файл бинарной сериализации, созданный средой статистических вычислений R с использованием функции save(). Он хранит один или несколько именованных объектов R - векторы, фреймы данных, списки, статистические модели или целые рабочие пространства - в собственном бинарном формате R XDR (External Data Representation), который обеспечивает кроссплатформенную совместимость между Windows, Linux и macOS.
Загрузка файла .rda с помощью load() восстанавливает все сохраненные объекты непосредственно в текущую среду R под их исходными именами. Это отличается от файлов .rds, которые содержат ровно один объект и позволяют вызывающей стороне назначить любое имя при загрузке через readRDS(). Для обмена одним объектом между скриптами обычно предпочтительнее .rds; .rda удобнее для сохранения всего рабочего пространства или именованной коллекции связанных объектов.
По умолчанию R сжимает файлы .rda с помощью gzip, хотя bzip2 и xz также поддерживаются через аргумент compress= в save(). Заголовок файла кодирует версию формата сериализации: версия 2 (R 1.4.0, декабрь 2001 г.) является наиболее совместимой; версия 3 (R 3.5.0, апрель 2018 г.) добавляет поддержку длинных векторов и объектов ALTREP, но для чтения требуется R 3.5.0 или выше. R автоматически предлагает сохранить рабочую область как .RData при выходе.
Безопасность и защита
РИСК: MEDIUMФайлы RDA могут содержать код R через сериализованные объекты функций/замыканий и среды. Загрузка ненадежного файла .rda может привести к выполнению кода через сериализованные объекты promise или активные привязки. load() из неизвестных источников несет тот же риск, что и выполнение произвольного кода R. Загружайте файлы .rda только из доверенных источников.
Детали формата
в двух словах- Oracle Storage Area file - Oracle использует расширение .rda для некоторых внутренних файлов описания областей хранения - совершенно не связано с R; крайне редко встречается на практике.
Программы, открывающие файлы RDA
load('file.rda') в консоли. Объекты появятся на панели Environment. load('path/to/file.rda') - объекты загружаются в текущую среду по имени. load('file.rda') в консоли. Объекты появятся на панели Environment. load('path/to/file.rda') - объекты загружаются в текущую среду по имени. load('file.rda') в консоли. Объекты появятся на панели Environment. load('path/to/file.rda') - объекты загружаются в текущую среду по имени. Технические подробности
глубокая спецификация| Тип файла | Бинарные сериализованные объекты R (один или несколько именованных объектов на файл) |
| MIME-тип | application/octet-stream |
| Магические байты | 52 44 58 0A («RDX\n») для бинарного формата XDR; заголовок «RDX3\n» для версии сериализации 3 |
| Кодировка | XDR (External Data Representation) - кроссплатформенный бинарный стандарт с порядком байтов big-endian |
| Порядок байтов | Big-endian (предписано спецификацией XDR) |
| Сжатие | gzip по умолчанию; bzip2 и xz также поддерживаются через аргумент compress= в save() |
| Типичный размер | от 1 КБ до нескольких ГБ (полностью зависит от сохраненных объектов) |
| Объектов в файле | Несколько именованных объектов (в отличие от .rds, который содержит ровно один объект на файл) |
| Поведение при загрузке | load() восстанавливает все объекты в текущую среду R под их исходными именами - может незаметно перезаписать существующие объекты |
| Версия сериализации | v2 (R ≥ 1.4.0, декабрь 2001 г.); v3 (R ≥ 3.5.0, апрель 2018 г.); версия закодирована в заголовке файла |
| Эквивалентное расширение | .RData - идентичный бинарный формат, другое соглашение об именовании; R сохраняет рабочую область как .RData при выходе |
| Поддержка ОС | Windows, Linux, macOS (полная кроссплатформенность благодаря кодировке XDR) |
| Связанный формат | .rds - сериализация одного объекта через saveRDS()/readRDS(); предпочтительна при обмене отдельными объектами R |
| Выпущен | 2001 (R serialization format version 2, introduced in R 1.4.0, December 2001) |
| Последняя версия | Serialization format version 3 (R 3.5.0, April 2018) - adds support for long vectors and ALTREP objects |
| Спецификация | cran.r-project.org |
Конвертации RDA
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах RDA.
Часто задаваемые вопросы
Как открыть файл .rda?
load('file.rda'). В RStudio: используйте панель Environment > Import Dataset или введите load() в консоли. Объекты появятся в вашей среде под своими исходными именами.В чем разница между .rda и .RData?
.RData - это расширение, которое R использует для автоматически сохраненных рабочих областей; .rda - общепринятое расширение для явно сохраненных файлов данных R.В чем разница между .rda и .rds?
.rda содержит несколько именованных объектов (save(obj1, obj2)); .rds содержит ровно один объект (saveRDS(obj)). С .rds вы сами даете имя объекту при загрузке: x <- readRDS('file.rds'). Современная практика R предпочитает .rds для обмена отдельными объектами.Можно ли открыть файл .rda в Python?
pyreadr: import pyreadr; result = pyreadr.read_r('file.rda'). Или через rpy2, которая вызывает R напрямую.Можно ли открыть файл .rda в Excel?
write.csv() или writexl.R загрузил мой .RData при запуске и сломал сессию - как это остановить?
usethis::use_blank_slate() в ваш .Rprofile.