Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test on latest datawizard #1050

Merged
merged 7 commits into from
Dec 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Type: Package
Package: parameters
Title: Processing of Model Parameters
Version: 0.24.0
Version: 0.24.0.2
Authors@R:
c(person(given = "Daniel",
family = "Lüdecke",
Expand Down Expand Up @@ -167,7 +167,7 @@ Suggests:
metafor,
mfx,
mgcv,
mice,
mice (>= 3.17.0),
mmrm,
multcomp,
MuMIn,
Expand Down Expand Up @@ -224,3 +224,4 @@ Config/testthat/edition: 3
Config/testthat/parallel: true
Config/Needs/website: easystats/easystatstemplate
Config/rcmdcheck/ignore-inconsequential-notes: true
Remotes: easystats/datawizard
78 changes: 37 additions & 41 deletions R/dominance_analysis.R
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@
#'
#' dominance_analysis(model_wt, quote_args = "weights")
#' @export
dominance_analysis <- function(model, sets = NULL, all = NULL,

Check warning on line 135 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=135,col=1,[cyclocomp_linter] Reduce the cyclomatic complexity of this function from 53 to at most 40.
conditional = TRUE, complete = TRUE,
quote_args = NULL, contrasts = model$contrasts,
...) {
Expand All @@ -156,7 +156,7 @@
}

model_info <- insight::model_info(model)
if (any(unlist(model_info[c("is_bayesian", "is_mixed", "is_gam", "is_multivariate", "is_zero_inflated", "is_hurdle")]))) {

Check warning on line 159 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=159,col=121,[line_length_linter] Lines should not be more than 120 characters. This line is 124 characters.
insight::format_error(
paste0("`dominance_analysis()` does not yet support models of class `", class(model)[[1]], "`."),
"You may be able to dominance analyze this model using the {.pkg domir} package."
Expand Down Expand Up @@ -228,7 +228,7 @@
reg <- as.list(insight::get_call(model))[[1]]

# Process sets ----
if (!is.null(sets)) {

Check warning on line 231 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=231,col=7,[if_not_else_linter] Prefer `if (A) x else y` to the less-readable `if (!A) y else x` in a simple if/else statement.
# gather predictors from each set
sets_processed <- lapply(sets, function(x) attr(stats::terms(x), "term.labels"))

Expand All @@ -250,7 +250,7 @@
# apply names to sets
set_names <- names(sets)

missing_set_names <- which(set_names == "")

Check warning on line 253 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=253,col=32,[nzchar_linter] Use !nzchar(x) instead of x == "". Note that unlike nzchar(), EQ coerces to character, so you'll have to use as.character() if x is a factor. Whenever missing data is possible, please take care to use nzchar(., keepNA = TRUE); nzchar(NA) is TRUE by default.

if (length(missing_set_names) > 0) {
set_names[missing_set_names] <- paste0("set", missing_set_names)
Expand All @@ -277,7 +277,7 @@
}

# Process all ----
if (!is.null(all)) {

Check warning on line 280 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=280,col=7,[if_not_else_linter] Prefer `if (A) x else y` to the less-readable `if (!A) y else x` in a simple if/else statement.
# gather predictors in all
all_processed <- attr(stats::terms(all), "term.labels")

Expand Down Expand Up @@ -331,9 +331,9 @@
if (length(ivs) == 0) ivs <- "1"
fml <- stats::reformulate(ivs, response = dv, intercept = insight::has_intercept(model))

data <- insight::get_data(model, verbose = FALSE)

Check warning on line 334 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=334,col=3,[object_overwrite_linter] 'data' is an exported object from package 'utils'. Avoid re-using such symbols.

args <- as.list(insight::get_call(model), collapse = "") # extract all arguments from call

Check warning on line 336 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=336,col=3,[object_overwrite_linter] 'args' is an exported object from package 'base'. Avoid re-using such symbols.

loc <- which(!(names(args) %in% c("formula", "data"))) # find formula and data arguments

Expand All @@ -342,8 +342,8 @@
insight::format_error("Model submitted does not have a formula and `data` argument.")
}

args <- args[loc] # remove formula and data arguments

Check warning on line 345 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=345,col=3,[object_overwrite_linter] 'args' is an exported object from package 'base'. Avoid re-using such symbols.
args <- args[-1] # remove function name

Check warning on line 346 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=346,col=3,[object_overwrite_linter] 'args' is an exported object from package 'base'. Avoid re-using such symbols.

# quote arguments for domin
for (arg in quote_args) {
Expand Down Expand Up @@ -443,7 +443,7 @@
# Apply set names
if (!is.null(sets)) {
for (set in seq_along(sets)) {
set_name <- if (!is.null(names(sets)[[set]])) {

Check warning on line 446 in R/dominance_analysis.R

View workflow job for this annotation

GitHub Actions / lint-changed-files / lint-changed-files

file=R/dominance_analysis.R,line=446,col=23,[if_not_else_linter] Prefer `if (A) x else y` to the less-readable `if (!A) y else x` in a simple if/else statement.
names(sets)[[set]]
} else {
paste0("set", set)
Expand Down Expand Up @@ -529,58 +529,54 @@
datawizard::data_relocate(da_df_res, "subset", after = "ranks")

if (conditional) {
da_df_cdl <-
.data_frame(Subset = names(domir_res$General_Dominance))

da_df_cdl <-
datawizard::data_merge(
da_df_cdl,
.data_frame(
Subset = names(domir_res$General_Dominance),
domir_res$Conditional_Dominance
)
)
da_df_cdl <- .data_frame(Subset = names(domir_res$General_Dominance))

da_df_cdl <-
datawizard::data_rename(
da_df_cdl,
names(da_df_cdl)[2:length(da_df_cdl)],
colnames(domir_res$Conditional_Dominance)
da_df_cdl <- datawizard::data_merge(
da_df_cdl,
.data_frame(
Subset = names(domir_res$General_Dominance),
domir_res$Conditional_Dominance
)
)

cols_to_select <- colnames(da_df_cdl)[2:length(da_df_cdl)]
da_df_cdl <- datawizard::data_rename(
da_df_cdl,
select = cols_to_select,
replacement = colnames(domir_res$Conditional_Dominance)
)
} else {
da_df_cdl <- NULL
}

if (complete) {
da_df_cpt <-
.data_frame(Subset = names(domir_res$General_Dominance))

da_df_cpt <-
datawizard::data_merge(
da_df_cpt,
.data_frame(
Subset = names(domir_res$General_Dominance),
domir_res$Complete_Dominance
)
)
da_df_cpt <- .data_frame(Subset = names(domir_res$General_Dominance))

da_df_cpt <-
datawizard::data_rename(
da_df_cpt,
names(da_df_cpt)[2:length(da_df_cpt)],
colnames(domir_res$Complete_Dominance)
da_df_cpt <- datawizard::data_merge(
da_df_cpt,
.data_frame(
Subset = names(domir_res$General_Dominance),
domir_res$Complete_Dominance
)
)

cols_to_select <- colnames(da_df_cpt)[2:length(da_df_cpt)]
da_df_cpt <- datawizard::data_rename(
da_df_cpt,
select = cols_to_select,
replacement = colnames(domir_res$Complete_Dominance)
)
} else {
da_df_cpt <- NULL
}

da_df_res <-
datawizard::data_rename(da_df_res,
replacement = c(
"Parameter", "General_Dominance",
"Percent", "Ranks", "Subset"
)
da_df_res <- datawizard::data_rename(
da_df_res,
replacement = c(
"Parameter", "General_Dominance",
"Percent", "Ranks", "Subset"
)
)

da_list <- list(
General = da_df_res,
Expand Down Expand Up @@ -615,7 +611,7 @@
printed_x <- x

printed_x$General <- datawizard::data_rename(x$General,
pattern = "General_Dominance",
select = "General_Dominance",
replacement = "General Dominance"
)

Expand All @@ -628,7 +624,7 @@

printed_x$Conditional <-
datawizard::data_rename(x$Conditional,
pattern = cdl_names,
select = cdl_names,
replacement = cdl_names_rep
)
}
Expand All @@ -644,7 +640,7 @@

printed_x$Complete <-
datawizard::data_rename(x$Complete,
pattern = cpt_names,
select = cpt_names,
replacement = cpt_names_rep
)
}
Expand Down
2 changes: 1 addition & 1 deletion R/extract_random_variances.R
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@
# rename columns
out <- datawizard::data_rename(
out,
pattern = c("grp", "sdcor"),
select = c("grp", "sdcor"),
replacement = c("Group", "Coefficient")
)

Expand Down
2 changes: 1 addition & 1 deletion R/methods_glmmTMB.R
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ ci.glmmTMB <- function(x,
method <- tolower(method)
method <- insight::validate_argument(
method,
c("wald", "normal", "ml1", "betwithin", "profile", "uniroot", "robust")
c("wald", "normal", "ml1", "betwithin", "profile", "uniroot", "robust", "residual")
)
component <- insight::validate_argument(
component,
Expand Down
11 changes: 5 additions & 6 deletions R/methods_mice.R
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ p_value.mipo <- function(model, ...) {
p = as.vector(s$p.value)
)
# check for ordinal-alike models
if ("y.level" %in% colnames(s)) {
out$Response <- as.vector(s$y.level)
if (!is.null(model$pooled) && "y.level" %in% colnames(model$pooled)) {
out$Response <- as.vector(model$pooled$y.level)
}
out
}
Expand All @@ -45,8 +45,8 @@ standard_error.mipo <- function(model, ...) {
SE = as.vector(s$std.error)
)
# check for ordinal-alike models
if ("y.level" %in% colnames(s)) {
out$Response <- as.vector(s$y.level)
if (!is.null(model$pooled) && "y.level" %in% colnames(model$pooled)) {
out$Response <- as.vector(model$pooled$y.level)
}
out
}
Expand Down Expand Up @@ -85,8 +85,7 @@ model_parameters.mipo <- function(model,
)

# check if we have ordinal/categorical response
s <- summary(model)
if ("y.level" %in% colnames(s)) {
if (!is.null(model$pooled) && "y.level" %in% colnames(model$pooled)) {
merge_by <- c("Parameter", "Response")
} else {
merge_by <- "Parameter"
Expand Down
2 changes: 1 addition & 1 deletion R/p_function.R
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ format.parameters_p_function <- function(x,
ci <- as.character(i$CI)[1]
out <- datawizard::data_rename(
i,
pattern = c("CI_low", "CI_high"),
select = c("CI_low", "CI_high"),
replacement = c(sprintf("CI_low_%s", ci), sprintf("CI_high_%s", ci))
)
out$CI <- NULL
Expand Down
1 change: 1 addition & 0 deletions tests/testthat/test-dominance_analysis.R
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
skip_if_not_installed("performance")
skip_if_not_installed("domir")
skip_if_not_installed("datawizard")

DA_test_model <- lm(mpg ~ vs + cyl + carb, data = mtcars)

Expand Down
4 changes: 2 additions & 2 deletions tests/testthat/test-pool_parameters.R
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ test_that("pooled parameters, glmmTMB, components", {
)
expect_equal(out$Coefficient, c(187.280225, -87.838969), tolerance = 1e-3)

out <- pool_parameters(models, component = "all", effects = "all")
out <- suppressMessages(pool_parameters(models, component = "all", effects = "all"))
expect_named(
out,
c(
Expand Down Expand Up @@ -123,7 +123,7 @@ test_that("pooled parameters, glmmTMB, zero-inflated", {
)
})

out <- pool_parameters(models)
out <- pool_parameters(models, ci_method = "residual")
expect_named(
out,
c(
Expand Down
Loading