Невозможно отобразить объекты ggplot2, созданные с помощью R 3.x, в R 4.x, импортированные из файла RDS - PullRequest
2 голосов
/ 28 мая 2020

Я экспортировал список с некоторыми объектами ggplot2 в файл .RDS, созданный из сеанса R 3.6.1. Затем попытался импортировать его в сеанс R 4.0.0 и получил следующую ошибку:

Error in identicalUnits(x) : 
  old version of unit class is no longer allowed

Я могу читать и импортировать эти графики в объект R, но НЕ МОГУ строить график. На самом деле у них есть все данные (данные, слои, отображение масштабов ...), но ggplot2 не отображает их.

Есть ли способ обойти это? Кто-нибудь из вас сталкивался с этой проблемой? Планирует ли ggplot2 обновить библиотеку, чтобы мы могли импортировать графики более старых версий? Надеюсь, вы поможете мне найти решение или хотя бы патч. Спасибо!

Ответы [ 2 ]

1 голос
/ 14 июня 2020

У меня была та же проблема, что и после того, как я глобально установил настраиваемую тему. Я заметил, что если я переопределил тему с помощью 'complete = F', а затем установил новую тему, построение изображения будет работать нормально. К сожалению, лучшего решения пока нет. Это также произошло с объектами ggplot, которые были недавно закодированы, то есть не прочитаны из файла .Rds.

1 голос
/ 29 мая 2020

Сохранение объектов ggplot2 в файлы .Rds обычно не рекомендуется, потому что нет абсолютно никакой гарантии, что они все равно будут работать, если либо ggplot2, либо (в данном случае) R обновятся до следующего выпуска, даже если это второстепенный выпуск. Объекты ggplot2 содержат большое количество исполняемого кода (замыкания), а также внутренние структуры данных, и они обычно не синхронизируются c всякий раз, когда мы генерируем график с одной версией ggplot2, а затем пытаемся напечатать с другой.

Другая проблема с сохранением объекта ggplot2 в .Rds заключается в том, что вся среда R также сохраняется, так что ваш .Rds файл может взорваться, если у вас будет большой объем данных, загруженных в ваш сеанс.

Единственные два безопасных подхода к сохранению графиков в разных версиях: 1. сохранить необработанные данные и код, который генерирует график, или 2. сохранить выходные данные графика как .png, .pdf, et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...