Nothing
library(lme4)
options(nwarnings = 1000)
if(getRversion() < "3.2.0") {
if(interactive()) break # gives an error
else q() # <- undesirable when interactive !
}
## Try all "standard" (statistical) S3 methods:
.S3generics <- function(class) {
s3m <- .S3methods(class=class)
ii <- attr(s3m, "info")
ii[!ii[, "isS4"], "generic"]
}
set.seed(12)
d <- data.frame(
g = sample(c("A","B","C","D","E"), 250, replace=TRUE),
y1 = runif(250, max=100),
y2 = sample(c(0,1), 250, replace=TRUE)
)
fm3.1 <- lmList(y1 ~ 1 | g, data=d)
fm3.2 <- lmList(y2 ~ 1 | g, data=d, family=binomial)
data(Orthodont, package="nlme")
Orthodont <- as.data.frame(Orthodont) # no "groupedData"
fm2 <- lmList(distance ~ age | Subject, Orthodont)
s3fn <- .S3generics(class= class(fm3.1)[1]) ## works for "old and new" class
noquote(s3fn <- s3fn[s3fn != "print"])# <-- it is show() not print() that works
## [1] coef confint fitted fixef formula logLik pairs plot
## [9] predict qqnorm ranef residuals sigma summary update
## In lme4 1.1-7 (July 2014), only these worked:
## coef(), confint(), formula(), logLik(), summary(), update()
## pairs() is excluded for fm3.1 which has only intercept:
## no errors otherwise:
evs <- sapply(s3fn[s3fn != "pairs"], do.call, args = list(fm3.1))
cls <- sapply(evs, function(.) class(.)[1])
clsOk <- cls[c("confint", "fixef", "formula", "logLik",
"ranef", "sigma", "summary", "update")]
stopifnot(identical(unname(clsOk),
c("lmList4.confint", "numeric", "formula", "logLik",
"ranef.lmList", "numeric", "summary.lmList", "lmList4")))
## --- fm2 --- non-trivial X: can use pairs(), too:
evs2 <- sapply(s3fn, do.call, args = list(fm2))
## --- fm3.2 --- no failures for this "glmList" :
ss <- function(...) suppressMessages(suppressWarnings(...))
ss(evs3.2 <- sapply(s3fn[s3fn != "pairs"], do.call,
args = list(fm3.2)))
## --- fm4 ---
evs4 <- sapply(s3fn, function(fn)
tryCatch(do.call(fn, list(fm4)), error=function(e) e))
length(warnings())
summary(warnings()) ## 4 kinds; glm.fit: fitted probabilities numerically 0 or 1 occurred
str(sapply(evs4, class)) # more errors than above
isok4 <- !sapply(evs4, is, class2="error")
## includes a nice pairs():
evs4[isok4]
## Error msgs of those with errors, first 5, now 3, then 2 :
str(errs4 <- lapply(evs4[!isok4], conditionMessage))
## $ logLik : chr "log-likelihood not available with NULL fits"
## $ summary: chr "subscript out of bounds"
stopifnot(length(errs4) <= 2)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.