5

マルチレベルモデルを実行しています。次のコマンドをvalidatedRS6、結果、random予測子clustno、ランダム効果変数として使用します。

new<-as.data.frame(read.delim("BABEX.dat", header=TRUE))
install.packages("lme4")
library(lme4)
model1<- glmer(validatedRS6 ~ random + (1|clustno), data=new, family=binomial("logit"), nAGQ = 1L)

ただし、次のエラーが表示されます

do.call(new, c(list(Class = "glmResp", family = family), ll[setdiff(names(ll), : 'what' は文字列または関数でなければなりません) のエラー

何がいけなかったのかさっぱりわからず、ネットで検索。申し訳ありませんが、まだ公開されていない介入からのデータであるため、データを提供することはできません.

4

1 に答える 1

4

(コメントから展開)。

おめでとうございます。 にバグが見つかりましたlme4。これは現在修正されています。

https://github.com/lme4/lme4/commit/9c12f002821f9567d5454e2ce3b78076dabffb54

これは、グローバル環境で呼び出された変数があることが原因newです(コードの奥深くで、組み込み関数ではなく変数lme4を使用do.call(new,...)および検索します)。newnew

を使用して Github からパッチを適用したバージョンをインストールできdevtools::install_github()ます (ただし、コンパイル ツールなどが必要になります)。別の方法としては、非常に簡単な回避策があります。変数をそれ以外の名前で呼び出すだけですnew(単にコピーすることはできません。つまりnew2 <- new、古いバージョンが削除されていることも確認する必要があります ( rm("new")))。

于 2013-11-06T18:09:21.823 に答える