From fe82163c58d35b221938ce32a930e3d1c7d8ea31 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 23 Jul 2024 17:21:35 +0200 Subject: [PATCH] fix --- R/get_df.R | 10 +++++++--- R/get_df_residual.R | 17 +++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/R/get_df.R b/R/get_df.R index 6f50a51af..559dd6d3c 100644 --- a/R/get_df.R +++ b/R/get_df.R @@ -470,10 +470,14 @@ get_df.mediate <- function(x, ...) { #' @keywords internal -.degrees_of_freedom_analytical <- function(model, kenward = TRUE) { - nparam <- .model_df(model) - n <- n_obs(model) +.degrees_of_freedom_analytical <- function(model, kenward = TRUE, model_n_params = TRUE) { + if (isTRUE(model_n_params)) { + nparam <- .model_df(model) + } else { + nparam <- n_parameters(x) + } + n <- n_obs(model) if (is.null(n)) { return(Inf) } diff --git a/R/get_df_residual.R b/R/get_df_residual.R index 32a018803..90caf3f87 100644 --- a/R/get_df_residual.R +++ b/R/get_df_residual.R @@ -56,22 +56,23 @@ # we don't call ".degrees_of_freedom_analytical()" here, because that # function relies on `.model_df()` to estimate the number of parameters, # which returns results that are not in line with the "summary()" for gls - nparam <- n_parameters(x) - n <- n_obs(x) - if (is.null(n) || is.null(nparam)) { - return(Inf) - } - n - nparam + .degrees_of_freedom_analytical(x, kenward = FALSE, model_n_params = FALSE) } #' @keywords internal .degrees_of_freedom_residual.rlm <- .degrees_of_freedom_residual.gls #' @keywords internal -.degrees_of_freedom_residual.biglm <- .degrees_of_freedom_residual.gls +.degrees_of_freedom_residual.biglm <- function(x, verbose = TRUE, ...) { + if (!is.null(x$df.resid)) { + x$df.resid + } else { + .degrees_of_freedom_analytical(x, kenward = FALSE, model_n_params = FALSE) + } +} #' @keywords internal -.degrees_of_freedom_residual.bigglm <- .degrees_of_freedom_residual.gls +.degrees_of_freedom_residual.bigglm <- .degrees_of_freedom_residual.biglm #' @keywords internal .degrees_of_freedom_residual.glimML <- function(x, verbose = TRUE, ...) {