## test for PR#16110 library(nlme) Orth <- subset(Orthodont, Subject %in% c("M01","F01")) cs1CompSymm <- corCompSymm(value = 0.3, form = ~ 1 | Subject) cs1CompSymm <- Initialize(cs1CompSymm, data = Orth) ## corFactor should return corMatrix(, corr = FALSE) as a vector Linvt <- corMatrix(cs1CompSymm, corr = FALSE) stopifnot(all.equal(unlist(Linvt, use.names = FALSE), as.vector(corFactor(cs1CompSymm)))) ## failed in 3.1-145 because the corFactor.corCompSymm method was ## misnamed corFactor.compSymm (a non-existent class), such that the ## general corFactor.corStruct method was called instead, which returned ## a different solution for the (transpose inverse) square-root factor ## test corMatrix() with spatial correlation *and* groups coords <- cbind(x = (0:5)/10, y = (0:5)/10, z = (0:5)/10) dists <- dist(coords, method = "manhattan") spatDatGrouped <- data.frame(ID = factor(rep(c("A", "B"), each = nrow(coords))), coords) cs1Exp <- corExp(1, form = ~ x + y + z | ID, metric = "manhattan") cs1Exp <- Initialize(cs1Exp, spatDatGrouped) stopifnot(identical(getCovariate(cs1Exp), list(A = c(dists), B = c(dists)))) cM <- corMatrix(cs1Exp) stopifnot(exprs = { identical(cM[[1]], cM[[2]]) cM[[1]][lower.tri(cM[[1]])] == exp(-dists) })