Thank for the instruction. Here is the whole outputs:
> library(piecewiseSEM)
Registered S3 method overwritten by 'lme4':
method from
na.action.merMod car
This is piecewiseSEM version 2.3.0.2.
Questions or bugs can be addressed to <[email protected]>.
> library(nlme)
> library(car)
Loading required package: carData
> fm2 <- lme(distance ~ age + Sex, data = Orthodont, random = ~ 1)
> Anova(fm2)
Error in if (random) { : the condition has length > 1
> car::Anova(fm2)
Error in if (random) { : the condition has length > 1
> car:::Anova.lme(fm2)
Error in if (random) { : the condition has length > 1
> traceback()
8: model.frame.lme(object, data, xlev = xlev)
7: model.frame(object, data, xlev = xlev)
6: model.matrix.default(mod, data = structure(list(distance = c(26,
25, 29, 31, 21.5, 22.5, 23, 26.5, 23, 22.5, 24, 27.5, 25.5, 27.5,
26.5, 27, 20, 23.5, 22.5, 26, 24.5, 25.5, 27, 28.5, 22, 22, 24.5,
26.5, 24, 21.5, 24.5, 25.5, 23, 20.5, 31, 26, 27.5, 28, 31, 31.5,
23, 23, 23.5, 25, 21.5, 23.5, 24, 28, 17, 24.5, 26, 29.5, 22.5,
25.5, 25.5, 26, 23, 24.5, 26, 30, 22, 21.5, 23.5, 25, 21, 20,
21.5, 23, 21, 21.5, 24, 25.5, 20.5, 24, 24.5, 26, 23.5, 24.5,
25, 26.5, 21.5, 23, 22.5, 23.5, 20, 21, 21, 22.5, 21.5, 22.5,
23, 25, 23, 23, 23.5, 24, 20, 21, 22, 21.5, 16.5, 19, 19, 19.5,
24.5, 25, 28, 28), age = c(8, 10, 12, 14, 8, 10, 12, 14, 8, 10,
12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12,
14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14,
8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8,
10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10,
12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12,
14, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14), Subject =
structure(c(15L,
15L, 15L, 15L, 3L, 3L, 3L, 3L, 7L, 7L, 7L, 7L, 14L, 14L, 14L,
14L, 2L, 2L, 2L, 2L, 13L, 13L, 13L, 13L, 5L, 5L, 5L, 5L, 6L,
6L, 6L, 6L, 11L, 11L, 11L, 11L, 16L, 16L, 16L, 16L, 4L, 4L, 4L,
4L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 12L,
12L, 12L, 12L, 1L, 1L, 1L, 1L, 20L, 20L, 20L, 20L, 23L, 23L,
23L, 23L, 25L, 25L, 25L, 25L, 26L, 26L, 26L, 26L, 21L, 21L, 21L,
21L, 19L, 19L, 19L, 19L, 22L, 22L, 22L, 22L, 24L, 24L, 24L, 24L,
18L, 18L, 18L, 18L, 17L, 17L, 17L, 17L, 27L, 27L, 27L, 27L), levels
= c("M16",
"M05", "M02", "M11", "M07", "M08", "M03", "M12", "M13", "M14",
"M09", "M15", "M06", "M04", "M01", "M10", "F10", "F09", "F06",
"F01", "F05", "F07", "F02", "F08", "F03", "F04", "F11"), class =
c("ordered",
"factor")), Sex = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L), levels = c("Male", "Female"), class = "factor")),
row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",
"25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35",
"36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46",
"47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57",
"58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68",
"69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79",
"80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90",
"91", "92", "93", "94", "95", "96", "97", "98", "99", "100",
"101", "102", "103", "104", "105", "106", "107", "108"), outer =
~Sex, class = c("nfnGroupedData",
"nfGroupedData", "groupedData", "data.frame"), formula = distance ~
age | Subject, labels = list(x = "Age", y = "Distance from
pituitary to pterygomaxillary fissure"), units = list(
x = "(yr)", y = "(mm)"), FUN = structure(function (x)
max(x, na.rm = TRUE), source = "function (x) max(x, na.rm = TRUE)"),
order.groups = TRUE),
contrasts.arg = list(Sex = structure(c(0, 1), dim = 2:1,
dimnames = list(
c("Male", "Female"), "Female"))))
5: NextMethod(formula(object), data = data, contrasts.arg =
object$contrasts)
4: model.matrix.lme(mod)
3: model.matrix(mod)
2: Anova_II_lme(mod, vcov., singular.ok = singular.ok)
1: car:::Anova.lme(fm2)
> sessionInfo()
R version 4.6.1 (2026-06-24 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=Chinese (Simplified)_China.utf8
[2] LC_CTYPE=Chinese (Simplified)_China.utf8
[3] LC_MONETARY=Chinese (Simplified)_China.utf8
[4] LC_NUMERIC=C
[5] LC_TIME=Chinese (Simplified)_China.utf8
time zone: Asia/Shanghai
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] car_3.1-5 carData_3.0-6 nlme_3.1-170 piecewiseSEM_2.3.1
loaded via a namespace (and not attached):
[1] Matrix_1.7-5 jsonlite_2.0.0 compiler_4.6.1 Rcpp_1.1.2
[5] DiagrammeR_1.0.12 splines_4.6.1 boot_1.3-32 fastmap_1.2.0
[9] lattice_0.22-9 TH.data_1.1-5 Formula_1.2-5 MuMIn_1.48.19
[13] rbibutils_2.4.1 htmlwidgets_1.6.4 MASS_7.3-66 visNetwork_2.1.4
[17] nloptr_2.2.1 insight_1.5.2 minqa_1.2.8 RColorBrewer_1.1-3
[21] rlang_1.3.0 multcomp_1.4-31 performance_0.17.1
estimability_2.0.0
[25] cli_3.6.6 magrittr_2.0.5 Rdpack_2.6.6 emmeans_2.0.4
[29] digest_0.6.39 grid_4.6.1 mvtnorm_1.4-2 sandwich_3.1-2
[33] lme4_2.0-6 reformulas_0.4.4 glue_1.8.1 codetools_0.2-20
[37] zoo_1.8-15 survival_3.8-9 abind_1.4-8 stats4_4.6.1
[41] tools_4.6.1 htmltools_0.5.9
> packageVersion("car")
[1] ‘3.1.5’
> packageVersion("piecewiseSEM")
[1] ‘2.3.1’
> packageVersion("nlme")
[1] ‘3.1.170’
All the packages are installed from CRAN, and updated to the latest
version. I also run the codes on FreeBSD 15.1, the same output.
Best,
Jinsong
On 7/19/2026 2:02 PM, varin sacha wrote:
Hi,
Could this be a package compatibility bug?
Since Anova(fm2), car::Anova(fm2), and even car:::Anova.lme(fm2) all produce
the same error, it doesn’t appear to be a simple namespace masking issue.
Could you post the output of:
traceback()
sessionInfo()
packageVersion("car")
packageVersion("piecewiseSEM")
packageVersion("nlme")
That should help identify the exact call that’s failing and whether the problem
lies in car, piecewiseSEM, or an incompatibility between the two packages.
Le 19 juil. 2026 à 04:58, Jinsong Zhao <[email protected]> a écrit :
I have tried each solution in a new R session, and neither works.
library(piecewiseSEM)
Registered S3 method overwritten by 'lme4':
method from
na.action.merMod car
This is piecewiseSEM version 2.3.0.2.
Questions or bugs can be addressed to <[email protected]>.
library(nlme)
library(car)
Loading required package: carData
fm2 <- lme(distance ~ age + Sex, data = Orthodont, random = ~ 1)
Anova(fm2)
Error in if (random) { : the condition has length > 1
car::Anova(fm2)
Error in if (random) { : the condition has length > 1
car:::Anova.lme(fm2)
Error in if (random) { : the condition has length > 1
______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.