我正在尝试使用 R 中的 lmer 函数构建混合效应线性回归模型。我正在使用以下代码构建固定效应和混合效应模型,以通过比较 AIC 来证明使用混合效应模型的合理性。我已尝试多次重新加载 lme4 包并在上传之间重新启动(如其他问题中的建议);但是,这并没有解决错误。预先感谢您的任何指导。
`# generate models
m0.glm <- glm(SPL ~ 1, family = Gamma, data = CP)
m0.lmer = lmer(SPL ~ 1 + (1|Lunar), REML = T, data = CP)
`# compare models
AIC(logLik(m0.glm))
AIC(logLik(m0.lmer))
> m0.glm <- glm(SPL ~ 1, family = Gamma, data = CP)
> m0.lmer = lmer(SPL ~ 1 + (1|Lunar), REML = T, data = CP)
Run Code Online (Sandbox Code Playgroud)
Error in initializePtr() :
function 'cholmod_factor_ldetA' not provided by package 'Matrix'`
Run Code Online (Sandbox Code Playgroud)
Mik*_*gan 29
Matrix < 1.6-2 和Matrix >= 1.6-2 是二进制不兼容的。当您在它们之间进行更改时,您必须从链接Matrix 的源包重新安装,因此依赖于Matrix ABI:
> tools::package_dependencies("Matrix", which = "LinkingTo", reverse = TRUE)[[1L]]
[1] "ahMLE" "bayesWatch" "cplm"
[4] "GeneralizedWendland" "hibayes" "irlba"
[7] "lme4" "mcmcsae" "OpenMx"
[10] "PRIMME" "robustlmm" "spGARCH"
[13] "TMB" "bcSeq"
Run Code Online (Sandbox Code Playgroud)
如果您有所需的工具 [1],那么您可以从源重新安装lme4 :
install.packages("lme4", type = "source")
Run Code Online (Sandbox Code Playgroud)
如果没有,那么您需要从存储库安装Matrix和lme4的兼容二进制文件。并非所有存储库都提供兼容的二进制文件,但 CRAN 提供[2],因此以下内容在大多数情况下应该有效:
oo <- options(repos = "https://cran.r-project.org/")
install.packages("Matrix")
install.packages("lme4")
options(oo)
Run Code Online (Sandbox Code Playgroud)
请注意,一旦lme4 > 1.1-35.1 发布,所有存储库中的二进制文件将自动重建。此时,update.packages()即使没有显式设置repos.
另请参阅我从 11 月 11 日起在 R-package-devel 邮件列表上发布的公告: https: //stat.ethz.ch/pipermail/r-package-devel/2023q4/010054.html
Windows 用户应安装 RTools,如此处所述;macOS 用户应安装 Xcode 和 GNU Fortran 的命令行工具,如此处所述;Linux 用户应该已经拥有所需的工具。
适用于 Windows(R 4.2、4.3、4.4)、macOS x86_64(R 4.3)和 macOS arm64(R 4.2、4.3)。
我收到了同样的错误,但使用 Matrix 的二进制版本(1.5-4)修复了它。
编辑:我对此错误的解决方案如下所述。
博尔克和贾根有更富有洞察力的贡献
remove.packages("Matrix")
install.packages("Matrix")
Run Code Online (Sandbox Code Playgroud)
只需在有关从源安装和编译的弹出窗口中单击“否”即可。
library(matrix)
Run Code Online (Sandbox Code Playgroud)
或者这应该有效
remove.packages("Matrix")
remove.packages("lme4")
install.packages("lme4", type = "source")
library(lme4)
Run Code Online (Sandbox Code Playgroud)
安装 lme4 还将包括 Matrix 包(二进制版本)。
不管你想做什么,只要确保你使用的是 Matrix 包的二进制版本(1.5-4 是最新的)。
| 归档时间: |
|
| 查看次数: |
29511 次 |
| 最近记录: |