insight
insight copied to clipboard
`ellipses_info()` doesn't work with `do.call()`
I have a variety of models in a list and I had hoped to do.call(compare_performance, model_list) but receive either broken output (with lm models) or an error message (with merMod models). Any ideas why?
Here is a reprex:
library(performance)
lm1 <- lm(Sepal.Length ~ Species, data = iris)
lm2 <- lm(Sepal.Length ~ Species + Petal.Length, data = iris)
lm3 <- lm(Sepal.Length ~ Species * Petal.Length, data = iris)
compare_performance(lm1, lm2, lm3)
#> # Comparison of Model Performance Indices
#>
#> Name | Model | AIC (weights) | AICc (weights) | BIC (weights) | R2 | R2 (adj.) | RMSE | Sigma
#> -------------------------------------------------------------------------------------------------
#> lm1 | lm | 231.5 (<.001) | 231.7 (<.001) | 243.5 (<.001) | 0.619 | 0.614 | 0.510 | 0.515
#> lm2 | lm | 106.2 (0.566) | 106.6 (0.611) | 121.3 (0.964) | 0.837 | 0.833 | 0.333 | 0.338
#> lm3 | lm | 106.8 (0.434) | 107.6 (0.389) | 127.8 (0.036) | 0.840 | 0.835 | 0.330 | 0.336
# this doesn't work
do.call(compare_performance, list(lm1, lm2, lm3))
#> # Comparison of Model Performance Indices
#>
#> Name | Model | AIC (weights) | AICc (weights) | BIC (weights) | R2 | R2 (adj.) | RMSE | Sigma
#> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#> list(c(5.006, 0.93, 1.582), c(0.0940000000000025, -0.106, -0.306000000000001, -0.406, -0.00599999999999999, 0.394, -0.406, -0.00599999999999999, -0.606, -0.106, 0.394, -0.206, -0.206, -0.706, 0.794, 0.694, 0.394, 0.0939999999999997, 0.694,
#> [truncated]
#> 5.1, 5.1, 5.9, 5.7, 5.2, 5, 5.2, 5.4, 5.1))) | lm | 106.8 (0.434) | 107.6 (0.389) | 127.8 (0.036) | 0.840 | 0.835 | 0.330 | 0.336
do.call(anova, list(lm1, lm2, lm3))
#> Analysis of Variance Table
#>
#> Model 1: Sepal.Length ~ Species
#> Model 2: Sepal.Length ~ Species + Petal.Length
#> Model 3: Sepal.Length ~ Species * Petal.Length
#> Res.Df RSS Df Sum of Sq F Pr(>F)
#> 1 147 38.956
#> 2 146 16.682 1 22.274 196.7730 <2e-16 ***
#> 3 144 16.301 2 0.381 1.6828 0.1895
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Created on 2023-05-05 with reprex v2.0.2
What happens if drop do.call(). compare_performance() should accept a list as input
I think it's actually insight::ellipses_info() that is failing here.
do.call(insight::ellipsis_info, list(lm1, lm2, lm3, only_models = TRUE))
moving to insight repo