diff --git a/DESCRIPTION b/DESCRIPTION index ac760d2c5..f9b06dea8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: modelbased Title: Estimation of Model-Based Predictions, Contrasts and Means -Version: 0.8.9.2 +Version: 0.8.9.3 Authors@R: c(person(given = "Dominique", family = "Makowski", diff --git a/R/get_emcontrasts.R b/R/get_emcontrasts.R index e4469d140..f1fd0ac8b 100644 --- a/R/get_emcontrasts.R +++ b/R/get_emcontrasts.R @@ -70,8 +70,11 @@ model_emcontrasts <- get_emcontrasts by = NULL, ...) { # Gather info - predictors <- insight::find_predictors(model, effects = "fixed", flatten = TRUE, ...) model_data <- insight::get_data(model, verbose = FALSE) + predictors <- intersect( + colnames(model_data), + insight::find_predictors(model, effects = "fixed", flatten = TRUE, ...) + ) # Guess arguments if (is.null(contrast)) { diff --git a/R/get_emmeans.R b/R/get_emmeans.R index df3a9aebc..6c375cc2b 100644 --- a/R/get_emmeans.R +++ b/R/get_emmeans.R @@ -130,12 +130,15 @@ model_emmeans <- get_emmeans by = NULL, ...) { # Gather info - predictors <- insight::find_predictors(model, effects = "fixed", flatten = TRUE, ...) - my_data <- insight::get_data(model, verbose = FALSE) + model_data <- insight::get_data(model, verbose = FALSE) + predictors <- intersect( + colnames(model_data), + insight::find_predictors(model, effects = "fixed", flatten = TRUE, ...) + ) # Guess arguments if (!is.null(by) && length(by) == 1 && by == "auto") { - by <- predictors[!sapply(my_data[predictors], is.numeric)] + by <- predictors[!sapply(model_data[predictors], is.numeric)] if (!length(by) || all(is.na(by))) { stop("Model contains no categorical factor. Please specify 'by'.", call. = FALSE) } @@ -143,7 +146,7 @@ model_emmeans <- get_emmeans } my_args <- list(by = by) - .format_emmeans_arguments(model, args = my_args, data = my_data, ...) + .format_emmeans_arguments(model, args = my_args, data = model_data, ...) } @@ -152,7 +155,13 @@ model_emmeans <- get_emmeans # Create the data_matrix # --------------------------- # data <- insight::get_data(model) - data <- data[insight::find_predictors(model, effects = "fixed", flatten = TRUE, ...)] + predictors <- insight::find_predictors( + model, + effects = "fixed", + flatten = TRUE, + ... + ) + data <- data[intersect(predictors, colnames(data))] # Deal with 'at' if (is.null(args$by)) { @@ -168,7 +177,7 @@ model_emmeans <- get_emmeans args$by <- names(args$data_matrix) } else { if (!is.null(args$by) && all(args$by == "all")) { - target <- insight::find_predictors(model, effects = "fixed", flatten = TRUE) + target <- intersect(predictors, colnames(data)) } else { target <- args$by } diff --git a/R/get_emtrends.R b/R/get_emtrends.R index e659e0ffd..cbec8473d 100644 --- a/R/get_emtrends.R +++ b/R/get_emtrends.R @@ -56,8 +56,11 @@ model_emtrends <- get_emtrends by = NULL, ...) { # Gather info - predictors <- insight::find_predictors(model, effects = "fixed", flatten = TRUE, ...) model_data <- insight::get_data(model, verbose = FALSE) + predictors <- intersect( + colnames(model_data), + insight::find_predictors(model, effects = "fixed", flatten = TRUE, ...) + ) # Guess arguments if (is.null(trend)) { diff --git a/R/get_marginalmeans.R b/R/get_marginalmeans.R index 3c89a12fd..5e003be30 100644 --- a/R/get_marginalmeans.R +++ b/R/get_marginalmeans.R @@ -189,8 +189,11 @@ model_marginalmeans <- get_marginalmeans #' @keywords internal .guess_arguments_means <- function(model, by = NULL, ...) { # Gather info and data from model - predictors <- insight::find_predictors(model, flatten = TRUE, ...) model_data <- insight::get_data(model) + predictors <- intersect( + colnames(model_data), + insight::find_predictors(model, effects = "fixed", flatten = TRUE, ...) + ) # Guess arguments 'by' if (identical(by, "auto")) {