ggplot2我将包含一些对象的列表导出到.RDS从 R 3.6.1 会话生成的文件中。然后,尝试将其导入 R 4.0.0 会话并收到以下错误:
Error in identicalUnits(x) :
old version of unit class is no longer allowed
Run Code Online (Sandbox Code Playgroud)
我可以读取这些图并将其导入 R 对象,但无法绘图。他们实际上拥有所有数据(数据、图层、比例映射...),但ggplot2没有绘制它们。
有什么办法解决吗?你们有人遇到过这个问题吗?是否ggplot2计划更新库以便我们可以导入旧版本的绘图?希望你能帮我找到解决方案,或者至少是一个补丁。谢谢!
通常不鼓励将 ggplot2 对象保存到.Rds文件中,因为如果 ggplot2 或(在本例中)R 升级到下一个版本,即使它是次要版本,也绝对不能保证它们仍然可以工作。ggplot2 对象包含大量可执行代码(闭包)以及内部数据结构,每当我们使用一个 ggplot2 版本生成绘图,然后尝试使用另一个版本进行打印时,这些通常会不同步。
保存 ggplot2 对象的另一个问题.Rds是,整个 R 环境也会被保存,因此.Rds如果您碰巧将大量数据加载到会话中,您的文件可能会崩溃。
跨版本保留绘图的唯一两种安全方法是 1. 保存生成绘图的原始数据和代码或 2. 将绘图输出另存为.png、.pdf等。
| 归档时间: |
|
| 查看次数: |
4170 次 |
| 最近记录: |