INLA运行贝叶斯模型报dsparseModelMatrix类Mnumeric未定义错误求助
INLA运行报错
superclass "Mnumeric" not defined 解决方案 该报错是Matrix包版本与当前使用的INLA版本不兼容导致的。你使用的INLA 21.02.23版本基于旧版Matrix包的类结构开发,后续Matrix包更新后移除了Mnumeric超类定义,就会触发该校验错误。
可按以下优先级选择解决方案:
- 方案1:降级Matrix包到兼容版本
安装和INLA 21.02.23适配的Matrix 1.3-4版本,运行代码:
安装完成后重启R会话,再重新运行你的INLA代码即可。# 先安装remotes包如果未安装 if(!require(remotes)) install.packages("remotes") remotes::install_version("Matrix", version = "1.3-4") - 方案2:升级R和INLA到最新版本
如果你可以调整运行环境,先将R升级到4.0及以上版本,再安装最新版INLA,即可适配新版Matrix包的类结构,从根本上解决兼容问题。 - 临时补丁方案:手动定义缺失类
如果你暂时无法调整包版本,可以在调用inla()函数前先执行一行代码手动注册缺失的类:
该方案仅作临时调试使用,不建议长期依赖,可能会引发其他隐式类转换问题。setClass("Mnumeric", contains = "numeric")
内容的提问来源于stack exchange,提问作者Alfredo
相关产品推荐
相关产品推荐

