これは完全な答えではありませんが、コメントではフォーマットがひどいものになります。(質問が解決されたら、後で削除または編集します。)
今のところ再現できません。再現可能な例を次に示します。
set.seed(101)
d <- data.frame(covariate=runif(500),response=rnorm(500),
                factorA=factor(sample(1:5,size=500,replace=TRUE)),
                factorB=factor(sample(1:5,size=500,replace=TRUE)))
library("nlme")
control <- lmeControl(maxIter=100,opt = c("optim"))
m1 <- lme(response ~ 0+factorA+covariate,random=~1|factorB,
          weights=varIdent(form= ~1|factorA),control=control,
          data=d)
これが機能するので、遠くに行くのは難しいです。
再現可能な例を提供できれば最高です。options(error=recover)それ以外では、またはを設定してデバッグ/デバッグを支援できますdebug(nlme:::logLik.reStruct)。ブラウザに入ったら、次のようなコマンドを試すことができます
ls()
str(object)
str(conLin)
dput(object)
dput(conLin)
必要に応じて結果を提供します。