diff --git a/R/AbsBiasSS.R b/R/AbsBiasSS.R index 0838f251a97e62a4e82f65423a6ccd567b2b6b77..0ceb009c7b4dc33b6f9788dc6cb8459f0e25767b 100644 --- a/R/AbsBiasSS.R +++ b/R/AbsBiasSS.R @@ -257,15 +257,16 @@ AbsBiasSS <- function(exp, obs, ref = NULL, time_dim = 'sdate', memb_dim = NULL, obs_data <- obs_data[good_values] } } + ## Bias of the exp - bias_exp <- .Bias(exp = exp_data, obs = obs_data, na.rm = na.rm, absolute = TRUE, time_mean = TRUE) + bias_exp <- .Bias(exp = exp_data, obs = obs_data, na.rm = na.rm, absolute = TRUE, time_mean = FALSE) ## Bias of the ref if (is.null(ref)) { ## Climatological forecast - ref_data <- mean(obs_data, na.rm = na.rm) + ref_data <- rep(mean(obs_data, na.rm = na.rm), length(obs_data)) } - bias_ref <- .Bias(exp = ref_data, obs = obs_data, na.rm = na.rm, absolute = TRUE, time_mean = TRUE) + bias_ref <- .Bias(exp = ref_data, obs = obs_data, na.rm = na.rm, absolute = TRUE, time_mean = FALSE) ## Skill score and significance - biasSS[i, j] <- 1 - bias_exp / bias_ref + biasSS[i, j] <- 1 - mean(bias_exp) / mean(bias_ref) sign[i, j] <- .RandomWalkTest(skill_A = bias_exp, skill_B = bias_ref)$signif } } diff --git a/tests/testthat/test-AbsBiasSS.R b/tests/testthat/test-AbsBiasSS.R index b2e70f3e73b9aa1cd0b1ca350b8e3c62e6200c04..08a4a83d147be31fe3be3d69c796c55c59940c20 100644 --- a/tests/testthat/test-AbsBiasSS.R +++ b/tests/testthat/test-AbsBiasSS.R @@ -170,6 +170,11 @@ test_that("2. Output checks: dat1", { c(FALSE, FALSE), tolerance = 0.0001 ) + expect_equal( + as.vector(AbsBiasSS(exp1, exp1)$sign), + c(TRUE, TRUE), + tolerance = 0.0001 + ) })