无法将用R 3.x创建的ggplot2对象绘制到从RDS文件导入的R 4.x中

问题描述 投票:1回答:1

我将具有某些ggplot2对象的列表导出到从R 3.6.1会话生成的.RDS文件中。然后,尝试将其导入R 4.0.0会话,并收到以下错误:

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

我可以读取这些图并将其导入R对象,但无法绘制。它们实际上具有所有数据(数据,图层,比例尺映射...),但ggplot2并未绘制它们。

有什么解决方法吗?你们中有人遇到过这个问题吗? ggplot2是否计划更新库,以便我们可以导入旧版本的图?希望您能帮助我找到解决方案或至少一个补丁。谢谢!

r ggplot2 rds r-4.0.0
1个回答
0
投票
.Rds文件中,因为如果ggplot2或R(在本例中)R升级到下一个发行版(即使是次要发行版),则绝对不能保证它们仍然可以工作。 ggplot2对象包含大量的可执行代码(关闭)以及内部数据结构,并且每当我们生成具有一个ggplot2版本的图然后尝试使用另一版本进行打印时,这些对象通常就会不同步。

将ggplot2对象保存到.Rds的另一个问题是,还保存了整个R环境,因此,如果您在会话中加载了大量数据,则.Rds文件可能会崩溃。] >

保留版本之间的绘图的唯一两种安全方法是:1.保存原始数据和生成绘图的代码,或2.将绘图输出另存为.png.pdf

© www.soinside.com 2019 - 2024. All rights reserved.