加载数据集时遭遇yaml包懒加载数据库损坏错误求助
嘿,我碰到过好多次这个yaml包的懒加载数据库损坏问题了,别慌,咱们一步步来解决它!
先看看你遇到的错误:
Error in get0(oNam, envir = ns) : lazy-load database 'D:/R/R-3.4.3/library/yaml/R/yaml.rdb' is corrupt
In addition: Warning message:
In get0(oNam, envir = ns) : internal error -3 in R_decompress1
Error in get0(oNam, envir = ns) : lazy-load database 'D:/R/R-3.4.3/library/yaml/R/yaml.rdb' is corrupt
In addition: Warning messages:
1: In get0(oNam, envir = ns) : restarting interrupted promise evaluation
2: In get0(oNam, envir = ns) : internal error -3 in R_d...
这个错误本质是yaml包的懒加载数据库文件(yaml.rdb)损坏了,大概率是安装中断、磁盘读写异常,或者你的R版本(3.4.3确实有点老旧)和包版本不兼容导致的。下面是具体的修复步骤:
第一步:彻底卸载损坏的yaml包
首先要确保yaml包没在加载状态,然后卸载它,之后手动清理残留文件:# 检查并卸载已加载的yaml包 if ("yaml" %in% loadedNamespaces()) { detach("package:yaml", unload = TRUE) } # 从R中卸载yaml包 remove.packages("yaml")运行完上面的代码后,去路径
D:/R/R-3.4.3/library/里看看,如果还有yaml文件夹,直接删掉它,避免残留文件干扰重新安装。第二步:重新安装yaml包
优先用CRAN源安装,如果因为R版本太老找不到适配的包,就指定旧版本安装:- 常规CRAN安装:
install.packages("yaml")- 如果CRAN安装失败(旧R版本找不到对应包),用devtools安装兼容的旧版本:
# 先安装devtools(如果还没装的话) install.packages("devtools") # 安装适配R 3.4.3的yaml v2.1.18版本 devtools::install_github("viking/r-yaml@v2.1.18")第三步:验证修复效果
安装完成后,加载yaml包测试:library(yaml)如果没有弹出错误提示,说明问题已经解决啦!要是还是报错,那可能是你的R版本太老旧导致的兼容性问题,建议考虑升级到较新的稳定版(比如4.x系列),升级前记得备份好你的包和工作空间哦。
内容的提问来源于stack exchange,提问作者Ermias habte

