Nano Hash - криптовалюты, майнинг, программирование

Как сохранить несколько объектов R в файл с другими данными?

Это для инструмента, который я создаю, поэтому мое решение не может быть случайным. Я хотел бы сохранить объект ggplot в файл журнала, который содержит много другой информации. Затем я использовал многие из этих лог-файлов, чтобы составить комбинированный график всех ggplots. Я пытался просто сохранить изображения в формате .png, а затем объединить их в R, но качество значительно снижается при объединении их из файлов изображений. Любые идеи?

Я не хочу сохранять их в отдельных файлах .Rdata, потому что хочу, чтобы вся информация содержалась в файле журнала. Является ли мой единственный вариант сохранить кадр данных, используемый для построения ggplot, а затем восстановить его позже?

06.05.2020

  • Формат ggplot2 grob довольно уникален для R, и это довольно сложный (и большой) объект даже для небольших участков. Хотя может быть возможно закодировать grob во что-то, что вы можете сохранить в файле журнала (jsonlite), я подозреваю, что в объекте могут быть внутренние ссылки, которые делают эту часть сложной. Я предполагаю, не имея большего контекста, что ваше использование термина файл журнала может быть натяжкой, поскольку они часто (не всегда) являются ascii или, по крайней мере, недвоичными. Как насчет каталога журналов, каждый файл является записью (и файлом .rda). 06.05.2020
  • Спасибо за информацию! Я не учел, что объекты ggplot2 могут быть довольно большими. Я думаю, вы делаете большое замечание. На самом деле может иметь смысл просто записать всю мою информацию в файл .rda и использовать его в качестве моего файла журнала! Большое спасибо 06.05.2020
  • Как всегда, это зависит от обстоятельств, но если у вас много слоев, много отдельных точек и т. д., то это может складываться. Простая диаграмма рассеяния mtcars занимает всего 13 КБ, так что не гигантская, но хотя одна вещь может быть дешевой, многие вещи в сумме не такие дешевые. 06.05.2020
  • Имеет смысл! Спасибо! 07.05.2020

Ответы:


1

Я не уверен в причине встраивания в файл журнала, но у вас есть два варианта сохранения объектов r.

Опция 1. Сохраняйте сразу несколько объектов памяти.

save(ggplot1object, dataframe2, dataframe3, "location.filename.Rdata")

Тогда ты можешь

load("location.filename.RData") 

и все 3 объекта будут загружены в память.

Вариант 2. Создайте список и сохраните список.

save(list(ggplot1object, dataframe2, dataframe3), "location.filename.Rdata")

Тогда ты можешь

load("location.filename.Rdata")

и один элемент списка с тремя разными частями будет загружен в среду. Это могут быть ggplot элементы вывода, такие как p1, p2 и т. д., которые представляют разные объекты графика.

06.05.2020
  • Благодарю за ваш ответ. Я бы поставил палец вверх, но это мой первый пост :(. Причина встраивания всего этого в файлы журналов состоит в том, чтобы содержать всю информацию в одном файле, поэтому, когда агрегатный инструмент рекурсивно ищет все файлы журналов, ему нужно только беспокоиться об одном типе файла. Я думаю, что это самое чистое решение с точки зрения разработки программного обеспечения. Я надеюсь, что это имеет смысл. Меня могут заставить либо сделать это, либо записать данные как есть в файл журнала, а затем сжать файл. 06.05.2020
  • Примечание: итеративное добавление в файл .rda может в конечном итоге замедлиться по мере увеличения объема данных. Если вы знаете, что просто добавляете данные и не собираетесь использовать все из существующего файла .rda, вы можете добиться большей производительности, если будете записывать каждый гроб в новый файл .rda и только load добавлять их, когда собираетесь их объединить. Просто мысль. 06.05.2020
  • Мне пришлось указать путь сохранения с помощью "file=mydata.Rdata" 26.03.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..