gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 20:53:04 26 4
gpt4 key购买 nike

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

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

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

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

最佳答案

通常不鼓励将 ggplot2 对象保存到 .Rds 文件中,因为如果 ggplot2 或(在这种情况下)R 升级到下一个版本,即使它是次要版本,也绝对不能保证它们仍然可以工作。 ggplot2 对象包含大量可执行代码(闭包)以及内部数据结构,当我们使用一个 ggplot2 版本生成绘图然后尝试使用另一个版本打印时,这些对象通常会不同步。

将 ggplot2 对象保存到 .Rds 的另一个问题是整个 R 环境也被保存,因此如果您碰巧将大量数据加载到 session 中,您的 .Rds 文件可能会爆炸。

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

关于r - 无法将使用 R 3.x 创建的 ggplot2 对象绘制到从 RDS 文件导入的 R 4.x 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62067331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com