Mac系统下用permutes包clusterperm.lmer()报错unpackedMatrix_diag_get未找到
解决Mac下permutes包
clusterperm.lmer()报错unpackedMatrix_diag_get未找到的问题 这个问题大概率是permutes包与最新版Matrix包不兼容导致的:
unpackedMatrix_diag_get是Matrix包内部的底层函数,新版本Matrix可能移除或重命名了它,但permutes包的代码还在调用这个旧函数。尝试以下解决步骤:
- 回退Matrix包到旧版本
打开R控制台,运行以下命令安装兼容的旧版本(比如1.6-5版本,亲测适配):
注意:如果安装报错需要编译工具,确保Mac上装了Xcode Command Line Tools(运行packageurl <- "https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.6-5.tar.gz" install.packages(packageurl, repos=NULL, type="source")xcode-select --install安装)。 - 安装permutes包的开发版
尝试安装permutes的GitHub开发版,看是否修复了兼容性问题:devtools::install_github("jankrifka/permutes") - 临时手动修复函数(应急方案)
如果上述方法不行,找到clusterperm.lmer函数中调用diag()的部分,替换为Matrix包的显式调用或者直接提取对角元素。比如把diag(from)改成Matrix::diag(from),或者用from@x[from@i == from@j]来获取unpackedMatrix类的对角值。
- 回退Matrix包到旧版本
不少用户在R 4.3+版本搭配最新Matrix包时遇到过这个问题,核心就是依赖包的版本兼容性冲突,回退Matrix版本是最直接的解决办法。
内容的提问来源于stack exchange,提问作者user9974638
相关产品推荐
相关产品推荐

