В каком формате лучше всего сохранять фреймы данных на диск в R для хранения?

Каков наилучший формат для сохранения простых кадров данных на диск в R для хранения при ограничении семантических потерь?

Я спрашиваю, потому что я архивирую набор данных. В идеальном мире мой формат данных имел бы следующие характеристики:

  1. Стабильность - формат хранения будет совместим с будущей версией R
  2. Семантическая совместимость — формат хранения будет понимать семантику примитивных типов данных R. Например, он сможет разумно хранить упорядоченные факторы с метками.
  3. Открытый стандарт — в идеале формат должен быть открытым стандартом, чтобы другие статистические пакеты (сейчас или в будущем) могли его понять.

Моей первой мыслью было использовать CSV, который очень стабилен, но ему не хватает семантического богатства. С другой стороны, встроенный в R формат RData полностью отражает семантику R, но, вероятно, изменится между выпусками (поправьте меня, если я ошибаюсь).

Есть ли другой формат, который находит баланс между этими тремя императивами?


person fmark    schedule 09.03.2013    source источник
comment
Будут ли ваши данные открыты или обработаны другой программой, кроме R? и ?save упоминают об этом Any recent version of R can read compressed save file, поэтому я сомневаюсь, что формат .Rdata может меняться между выпусками.   -  person agstudy    schedule 09.03.2013
comment
Возможно, используйте XML или JSON< /а>   -  person Andrie    schedule 09.03.2013
comment
Я думаю, что YAML является хорошей альтернативой, см. пакет yaml. Он может обрабатывать основные типы данных R (например, именованные списки, векторы,...) и удобочитаем (на мой взгляд, лучше, чем XML).   -  person QkuCeHBH    schedule 09.03.2013


Ответы (1)


Скопируйте его в текстовый файл с dput. Таким образом, вы получаете всю структуру объектов R в текстовой форме, которую, если R перестанет существовать, можно довольно легко проанализировать.

Вероятно, он не проходит (3), ваш тест «открытого стандарта».

R довольно хорош для обратной совместимости с его форматом .RData, поэтому, даже если файлы, записанные последней версией R, не совпадают со старыми, последняя версия R все равно будет читать старые файлы. Однако, если R перестанет существовать, обратное проектирование двоичного формата будет на несколько порядков сложнее, чем грокирование вывода из dput.

person Spacedman    schedule 09.03.2013
comment
Обратите внимание, что в документации R для dput конкретно указано, что это не лучший формат для сохранения данных между сеансами: [dput] не является хорошим способом передачи объектов между сеансами R. dump лучше, но функция save предназначена для передачи данных R и будет работать с объектами R, которые dput не обрабатывает правильно, а также намного быстрее. rdocumentation.org/packages/base/versions/3.5.0/ темы/выход - person Bacon Bits; 10.05.2018