gpt4 book ai didi

r - 为什么我的包中的数据是 "serialized"而不是在最新版本的 R 中读取?

转载 作者:行者123 更新时间:2023-12-04 13:12:49 34 4
gpt4 key购买 nike

我编写了一个小包,可用于与同事共享函数和示例数据,最近我又向其中添加了几个数据文件。我当时使用的计算机运行的是 R 版本 4.0.0。但是,当我尝试使用 devtools 从 github 将该包安装到运行 R 版本 4.0.2 的计算机上时,我收到以下消息:

注意:这个包现在依赖于 R (>= 3.5.0)

警告:添加了对 R >= 3.5.0 的依赖,因为序列化/加载版本 3 中的序列化对象无法在旧版本的 R 中读取。包含此类对象的文件:'LaurasHelpers/data/Candidates. RData'

我不知道我的数据被序列化是什么意思。我没有改变我保存东西的方式。以下是我将名为“MyData”的 data.frame 保存到包的“data”文件夹中的方法:

 save(MyData, "MyData.RData")

在看到我帖子的初始答案后,我尝试了

 save(MyData, "MyData.RData", version = 2)

接下来,我更新了所有内容:

 devtools::document()
devtools::build()

我从 git bash 将更改推送到我的 github 存储库。然后,回到 RStudio,我做了:

 remove.packages("LaurasHelpers")
devtools::install_github(repo = "shirewoman2/LaurasHelpers")

但是当我加载我的包时,我仍然无法使用 data(MyData) 将某些数据文件加载到我的工作区中。

两个问题:

  1. 为什么我使用 R 4.0.0 保存的数据文件无法在 R 4.0.2 中加载?两者都比 R 3.5.0 更新。
  2. 如何避免这个问题,以便加载我的包的任何人都可以打开我非常简单的数据集?

最佳答案

警告并不意味着/没有告诉您不能在 4.0.2 中加载 4.0.0 中保存的文件。相反,它警告您使用 R < 3.5.0 的其他人将无法加载您保存的文件。

保存数据时,使用

save(MyObject, file = "MyObject.RData", version = 2)

保持向后兼容性并避免警告。

来自R 3.x news file , 在 3.6.0 版本下:

Serialization format version 3 becomes the default for serialization and saving of the workspace (save(), serialize(), saveRDS(), compiler::cmpfile()). Serialized data in format 3 cannot be read by versions of R prior to version 3.5.0. Serialization format version 2 is still supported and can be selected by version = 2 in the save/serialization functions. The default can be changed back for the whole R session by setting environment variables R_DEFAULT_SAVE_VERSION and R_DEFAULT_SERIALIZE_VERSION to 2. For maximal back-compatibility, files ‘vignette.rds’ and ‘partial.rdb’ generated by R CMD build are in serialization format version 2, and resave by default produces files in serialization format version 2 (unless the original is already in format version 3).

关于r - 为什么我的包中的数据是 "serialized"而不是在最新版本的 R 中读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63271511/

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