diff --git a/R/standardize.models.R b/R/standardize.models.R index 392e54af4..4d4a20f33 100644 --- a/R/standardize.models.R +++ b/R/standardize.models.R @@ -92,7 +92,7 @@ standardize.default <- function(x, weights = weights, verbose = verbose, include_response = include_response, - update_expr = stats::update(x, data = data_std), + update_expr = str2lang("stats::update(x, data = data_std)"), ... ) } @@ -263,10 +263,10 @@ standardize.default <- function(x, on.exit(.update_failed()) if (isTRUE(verbose)) { - model_std <- eval(substitute(update_expr)) + model_std <- eval(update_expr) } else { utils::capture.output({ - model_std <- eval(substitute(update_expr)) + model_std <- eval(update_expr) }) } diff --git a/tests/testthat/test-standardize_models.R b/tests/testthat/test-standardize_models.R index d5c58783e..96cf3e362 100644 --- a/tests/testthat/test-standardize_models.R +++ b/tests/testthat/test-standardize_models.R @@ -6,7 +6,16 @@ test_that("standardize.lm", { m0 <- lm(Sepal.Length ~ Species * Petal.Width, data = iris_z) m1 <- lm(Sepal.Length ~ Species * Petal.Width, data = iris2) model <- standardize(m1) - expect_identical(coef(m0), coef(model)) + expect_equal(coef(m0), coef(model), tolerance = 1e-5) +}) + +test_that("standardize.lm, edge case (intercept only)", { + iris2 <- na.omit(iris) + iris_z <- standardize(iris2) + m0 <- lm(Sepal.Length ~ 1, data = iris_z) + m1 <- lm(Sepal.Length ~ 1, data = iris2) + model <- standardize(m1) + expect_equal(coef(m0), coef(model), tolerance = 1e-5) }) test_that("standardize, mlm", { @@ -71,12 +80,14 @@ test_that("transformations", { expect_equal( effectsize::standardize_parameters(fit_exp, method = "refit")[2, 2], unname(coef(fit_scale1)[2]), + tolerance = 1e-4 ignore_attr = TRUE ) expect_equal( effectsize::standardize_parameters(fit_exp, method = "basic")[2, 2], unname(coef(fit_scale2)[2]), + tolerance = 1e-4 ignore_attr = TRUE ) @@ -122,12 +133,14 @@ test_that("weights", { expect_equal( stdREFIT[[2]], effectsize::standardize_parameters(m, method = "posthoc")[[2]], + tolerance = 1e-4 ignore_attr = TRUE ) expect_equal( stdREFIT[[2]], effectsize::standardize_parameters(m, method = "basic")[[2]], + tolerance = 1e-4 ignore_attr = TRUE ) })