rlogistf

Loading {logistf} breaks MCMCglmm()


Loading the package logistf breaks MCMCglmm(). Unloading logistf before running the command doesn't remove the error.

Why is that? Is there a way to solve this?

Works

library(MCMCglmm)
#> Loading required package: Matrix
#> Loading required package: coda
#> Loading required package: ape

data(PlodiaPO)
MCMCglmm(PO ~ plate, data = PlodiaPO)
#> 
#>                        MCMC iteration = 0
#> 
#>                        MCMC iteration = 1000
#> 
#>                        MCMC iteration = 2000
#> 
#>                        MCMC iteration = 3000
#> 
[...]
#> attr(,"class")
#> [1] "MCMCglmm"

Created on 2022-06-07 by the reprex package (v2.0.1)

Doesn't work

library(logistf)
library(MCMCglmm)
#> Loading required package: Matrix
#> Loading required package: coda
#> Loading required package: ape

data(PlodiaPO)
MCMCglmm(PO ~ plate, data = PlodiaPO)
#> Error in terms.formula(formula, data = data): invalid term in model formula

unloadNamespace("logistf")
MCMCglmm(PO ~ plate, data = PlodiaPO)
#> Error in terms.formula(formula, data = data): invalid term in model formula

Created on 2022-06-07 by the reprex package (v2.0.1)


Solution

  • After some research i found that the problem not from logistf but it comes from the imported package formula.tools to reproduce the error try :

    library(formula.tools)
    #>formula.tools-1.7.1 - Copyright © 2022 Decision Patterns
    library(MCMCglmm)
    #> Loading required package: Matrix
    #> Loading required package: coda
    #> Loading required package: ape
    
    data(PlodiaPO)
    MCMCglmm(PO ~ plate, data = PlodiaPO)
    
    #> Error in terms.formula(formula, data = data) : 
      invalid term in model formula
    

    and this issue known for formula.tools see Weird package dependency introduces error

    The solution detailed in this issue is:

    OR

    Thanks for this question