1ヶ月ぶりくらいにlme4
パッケージをつかって(一般化)線形混合モデルを計算しようと思ったら関数 'chm_factor_ldetL2' はパッケージ 'Matrix' では提供されていません
とエラーが出たので解決させたときの対応をメモしておく。
英語だと、Error in initializePtr() : function 'cholmod_factor_ldetL2' not provided by package 'Matrix'
というメッセージになる。
library(lme4) ## 要求されたパッケージ Matrix をロード中です library(lattice) gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), data = cbpp, family = binomial) ## initializePtr() でエラー: ## 関数 'chm_factor_ldetL2' はパッケージ 'Matrix' では提供されていません
少し前に実行したときには特に問題なく実行できていたのに、なんじゃらほい、と思った。glmer()
だけでなくlmer()
でも同じエラーが出た。
だいたいこういうエラーは誰かが同じように踏んでいるのでエラーメッセージ検索をかけると、英語のメッセージで検索するとすぐに
微妙にエラーメッセージが異なるが似た内容のエラー現象にいきあたる。
要するに「お前の使ってるMatrix
パッケージが古いんじゃね?」的な話の様子。
いや、定期的に、RStudoのTools > Check for package update実行してますけど、と思ったけど言われた通り、
install.packages("Matrix") install.packages("lme4")
とインストールし直してみたら解決した。
11月ころに出始めた症状のようで、たしかにここ1ヶ月位lme4
パッケージ使ってなかったな、と思った。
追記
RStudioをRoot権限のない一般ユーザーとして起動してTools > Check for package updateでパッケージをアップデートしてもSystem Libraryのパッケージはアップデートの対象にならないだけでなく、アップデートの有無すら確認されないことがわかった。
たぶんこの問題を踏んでいる人の多くはRStudioを一般ユーザーで起動しTools > Check for package updateをつかってパッケージのアップデートをしているのだと思う。