更新 "merModLmerTest" 对象 returns 对象 class "lmerMod"

update on "merModLmerTest" object returns object of class "lmerMod"

只是想知道这是否是众所周知的/理想的行为...?

可重现的例子:

## import lmerTest package
library(lmerTest)

## an object of class merModLmerTest
m <- lmer(Informed.liking ~ Gender+Information+Product +(1|Consumer), data=ham)

class(m)
class(update(m,REML=FALSE))

至少对我来说不是很明显。您可以使用 as(.,"merModLmerTest") ...

解决它
library(lmerTest)
m <- lmer(Reaction~Days+(Days|Subject),sleepstudy)
m2 <- update(m,REML=FALSE)
m3 <- as(m2,"merModLmerTest")
class(m3)  ## "merModLmerTest"

或者你可以使用这个辅助函数:

update2 <- function(x,...) {
   z <- update(x,...)
   return(as(z,"merModLmerTest"))
}
update2(m,REML=FALSE)