Re: Anova() in car not works after loading piecewiseSEM package
Jinsong Zhao <[email protected]> Sun, 19 Jul 2026 20:59:11 +0800
| Newsgroups | gmane.comp.lang.r.general |
|---|---|
| Message-ID | <[email protected]> |
On 7/19/2026 8:22 PM, Kamil Bartoń wrote:
> This worked for me:
>
>
> assignInNamespace("model.matrix.lme", \(object, ...) {
> data <- if (is.null(object$data)) eval(object$call$data) else
> object$data
> model.matrix(formula(object), data = data, contrasts.arg =
> object$contrasts)
> }, ns = "car")
>
Got it. Thanks a lot.
>
> On 2026-07-19 13:59, Jinsong Zhao wrote:
>>
>> On 7/19/2026 7:39 PM, Kamil Bartoń wrote:
>>> The problem may be that `car:::model.matrix.lme` uses:
>>>
>>> NextMethod(formula(object), [...]
>>>
>>> while the first argument for `NextMethod` should be a name of a
>>> generic function. This is why
>>> it is the lme object that is passed to `model.matrix.default` (which
>>> in turn looks for `model.frame.lme`, which is not implemented in
>>> "nlme") instead of a formula.
>>>
>>> I suppose the line in `car:::model.matrix.lme` should be changed to:
>>>
>>> model.frame(formula(object), [...])
>>>
>>> to work as intended.
>>>
>>> ~kB
>>>
>> I have tried to modify the car:::model.matrix.lme as suggested,
>> however, it does not work.
>>
>> > fm2 <- lme(distance ~ age + Sex, data = Orthodont, random = ~ 1)
>> > car::Anova(fm2)
>> Error in eval(extras, data, env) : object 'object' not found
>> > traceback()
>> 9: eval(extras, data, env)
>> 8: eval(extras, data, env)
>> 7: model.frame.default(formula(object), data = data, contrasts.arg =
>> object$contrasts)
>> 6: model.frame(formula(object), data = data, contrasts.arg =
>> object$contrasts)
>> 5: model.matrix.lme(mod)
>> 4: model.matrix(mod)
>> 3: Anova_II_lme(mod, vcov., singular.ok = singular.ok)
>> 2: Anova.lme(fm2)
>> 1: car::Anova(fm2)
>>
>>
>>>
>>>
>>> On 2026-07-19 13:21, varin sacha wrote:
>>>> Sorry,
>>>>
>>>> There is no nlme:::model.frame.lme. That makes an S3 method
>>>> signature mismatch the most likely explanation. The question of how
>>>> best to resolve it is probably one for the MuMIn package maintainer.
>>>>
>>>> Best
>>>>
>>>>
>>>>> Le 19 juil. 2026 à 12:30, varin sacha via R-help
>>>>> <[email protected]> a écrit :
>>>>>
>>>>> Thanks Duncan. This seems like a promising workaround. You should
>>>>> try re-registering the multcomp method:
>>>>>
>>>>> registerS3method("model.frame", "lme", multcomp:::model.frame.lme)
>>>>>
>>>>> And then test:
>>>>>
>>>>> car::Anova(fm2)
>>>>>
>>>>> If this resolves the issue, it would provide strong evidence that
>>>>> the problem is caused by the incompatible MuMIn::model.frame.lme()
>>>>> S3 registration rather than by car::Anova() itself.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Le 19 juil. 2026 à 12:14, Duncan Murdoch
>>>>>> <[email protected]> a écrit :
>>>>>>
>>>>>> On 2026-07-19 4:55 a.m., Jinsong Zhao wrote:
>>>>>>>> On 7/19/2026 3:52 PM, Jinsong Zhao wrote:
>>>>>>>> On 7/19/2026 2:59 PM, Jinsong Zhao wrote:
>>>>>>>>>
>>>>>>>>> On 7/19/2026 2:38 PM, varin sacha wrote:
>>>>>>>>>> Ok !
>>>>>>>>>> According to what I see, the error is occurring inside
>>>>>>>>>> car:::Anova.lme(), specifically during the construction of
>>>>>>>>>> the model
>>>>>>>>>> matrix.
>>>>>>>>>>
>>>>>>>>>> It therefore appears to be a genuine compatibility problem
>>>>>>>>>> between
>>>>>>>>>> the current CRAN versions of car (3.1-5), piecewiseSEM (2.3.1),
>>>>>>>>>> and/or nlme (3.1-170).
>>>>>>>>>>
>>>>>>>>>> The fact that you reproduced the same behavior on both
>>>>>>>>>> Windows and
>>>>>>>>>> FreeBSD also suggests that the issue is not platform-specific.
>>>>>>>>>>
>>>>>>>>>> I think this would be worth reporting to the package maintainers
>>>>>>>>>> (perhaps starting with car, since the traceback shows that the
>>>>>>>>>> failure occurs inside Anova.lme(), while mentioning that the
>>>>>>>>>> problem
>>>>>>>>>> only arises after loading piecewiseSEM). The reproducible
>>>>>>>>>> example
>>>>>>>>>> you’ve provided should make it straightforward for them to
>>>>>>>>>> investigate.
>>>>>>>>>
>>>>>>>>> The current maintainers of car and piecewiseSEM packages are also
>>>>>>>>> copied on this thread. As a regular user, I am just wondering
>>>>>>>>> what's
>>>>>>>>> behind the change in Anova()'s behavior—specifically, what gets
>>>>>>>>> modified after attaching piecewiseSEM?
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>>
>>>>>>>>> Jinsong
>>>>>>>>>
>>>>>>>> A small step forward toward the root of the issue: I've just
>>>>>>>> discovered that the model.frame.lme() function defined in the
>>>>>>>> MuMIn
>>>>>>>> package is what caused this problem (so I've copied this email
>>>>>>>> to the
>>>>>>>> maintainer of MuMIn).
>>>>>>>>
>>>>>>>> However, I'm still unclear as to why Anova() calls
>>>>>>>> model.frame.lme()
>>>>>>>> in the first place, given that car does not depend on the MuMIn
>>>>>>>> package. And directly invoking MuMIn:::model.frame.lme(fm2,
>>>>>>>> random=
>>>>>>>> TRUE) did not cause error.
>>>>>>>>
>>>>>>> I think I've found the root cause.
>>>>>>> piecewiseSEM imports MuMIn, where model.frame.lme is registered
>>>>>>> as an S3
>>>>>>> method:
>>>>>>> S3method(model.frame, lme)
>>>>>>> Its definition is:
>>>>>>> model.frame.lme <- function(formula, random = FALSE, ...)
>>>>>>> But Anova() calls it (per traceback()) with:
>>>>>>> model.frame.lme(object, data, xlev = xlev)
>>>>>>> This passes data to the random argument, causing a type mismatch
>>>>>>> and the
>>>>>>> error:
>>>>>>> Error in if (random) { : the condition has length > 1
>>>>>>> I've diagnosed the issue, but I don't yet know how to fix it.
>>>>>>
>>>>>> This looks hard to fix.
>>>>>>
>>>>>> One problem is that there are two definitions for
>>>>>> model.frame.lme, one from MuMIn and the other from multcomp. The
>>>>>> one from MuMIn is being called. If the one in multcomp was
>>>>>> called, things would be fine. Perhaps a fix could be for the
>>>>>> MuMIn package to change its definition to something compatible
>>>>>> with the multcomp definition, but the two functions appear to do
>>>>>> different things. I don't know if they can be made compatible.
>>>>>>
>>>>>> Another problem is in the stats package. The
>>>>>> stats:::model.matrix.default method makes a call to
>>>>>>
>>>>>> data <- model.frame(object, data, xlev = xlev)
>>>>>>
>>>>>> The definition of the generic model.frame() looks like
>>>>>>
>>>>>> function (formula, ...)
>>>>>> UseMethod("model.frame")
>>>>>>
>>>>>> so stats:::model.matrix.default has no basis for assuming that
>>>>>> the second argument is the data. Changing that call to
>>>>>>
>>>>>> data <- model.frame(object, data = data, xlev = xlev)
>>>>>>
>>>>>> would fix the issue of binding data to the "random" argument, but
>>>>>> you'd still end up calling the "wrong" method.
>>>>>>
>>>>>> Maybe someone else has an elegant idea to fix this?
>>>>>>
>>>>>> Duncan Murdoch
>>>>>>
>>>>>>> Best,
>>>>>>> Jinsong
>>>>>>>> Best,
>>>>>>>>
>>>>>>>> Jinsong
>>>>>>>>
>>>>>>>>> library(MuMIn)
>>>>>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Le 19 juil. 2026 à 08:22, Jinsong Zhao <[email protected]> a
>>>>>>>>>>> écrit :
>>>>>>>>>>>
>>>>>>>>>>> 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.
>>>>>>>>>
>>>>>>>>> ______________________________________________
>>>>>>>>> [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.
>>>>>>> ______________________________________________
>>>>>>> [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.
>>>>>>
>>>>>
>>>>> ______________________________________________
>>>>> [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.
>>>>
>>>
>>> ______________________________________________
>>> [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.
>>