diff --git a/DESCRIPTION b/DESCRIPTION index 703fc55f0e1884c8bac688b7ce51ef9ec50b8815..5e11a48302cc9b63d6f748ba309082f9c637c798 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: airGR Type: Package Title: Suite of GR Hydrological Models for Precipitation-Runoff Modelling -Version: 1.2.14.16 +Version: 1.2.14.17 Date: 2019-05-02 Authors@R: c( person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")), diff --git a/NEWS.rmd b/NEWS.rmd index 53db83b40b6a294a624118be433168b0a92acc3d..46667a84d87cf46cb76feaef8a46029459c4d8ee 100644 --- a/NEWS.rmd +++ b/NEWS.rmd @@ -14,7 +14,7 @@ output: -### 1.2.14.16 Release Notes (2019-05-02) +### 1.2.14.17 Release Notes (2019-05-02) #### New features diff --git a/R/CreateInputsCrit.R b/R/CreateInputsCrit.R index 365679f9572af9db9a418aeed2bd84d592e0ae1f..ae64a8d6b799821b5bf623facb83d41b7b1b2907 100644 --- a/R/CreateInputsCrit.R +++ b/R/CreateInputsCrit.R @@ -267,6 +267,7 @@ CreateInputsCrit <- function(FUN_CRIT, } } + ## Create InputsCrit iInputsCrit <- list(FUN_CRIT = iListArgs2$FUN_CRIT, Obs = iListArgs2$Obs, @@ -282,6 +283,12 @@ CreateInputsCrit <- function(FUN_CRIT, }) names(InputsCrit) <- paste0("IC", seq_along(InputsCrit)) + ## define FUN_CRIT as a characater string + listErrorCrit <- c("ErrorCrit_KGE", "ErrorCrit_KGE2", "ErrorCrit_NSE", "ErrorCrit_RMSE") + InputsCrit <- lapply(InputsCrit, function(i) { + i$FUN_CRIT <- listErrorCrit[sapply(listErrorCrit, function(j) identical(i$FUN_CRIT, get(j)))] + i + }) listVarObs <- sapply(InputsCrit, FUN = "[[", "VarObs") inCnVarObs <- c("SCA", "SWE") diff --git a/R/ErrorCrit.R b/R/ErrorCrit.R index 53f6511958f8a1c82ece70bd38730ee1bdb44023..28e9368ab21237b371452d32d5c24533e1f4e230 100644 --- a/R/ErrorCrit.R +++ b/R/ErrorCrit.R @@ -19,10 +19,11 @@ ErrorCrit <- function(InputsCrit, OutputsModel, FUN_CRIT, warnings = TRUE, verbo ## ----- Single criterion if (inherits(InputsCrit, "Single")) { - OutputsCrit <- InputsCrit$FUN_CRIT(InputsCrit = InputsCrit, - OutputsModel = OutputsModel, - warnings = warnings, - verbose = verbose) + FUN_CRIT <- match.fun(InputsCrit$FUN_CRIT) + OutputsCrit <- FUN_CRIT(InputsCrit = InputsCrit, + OutputsModel = OutputsModel, + warnings = warnings, + verbose = verbose) } @@ -30,10 +31,11 @@ ErrorCrit <- function(InputsCrit, OutputsModel, FUN_CRIT, warnings = TRUE, verbo if (inherits(InputsCrit, "Multi") | inherits(InputsCrit, "Compo")) { listOutputsCrit <- lapply(InputsCrit, FUN = function(iInputsCrit) { - iInputsCrit$FUN_CRIT(InputsCrit = iInputsCrit, - OutputsModel = OutputsModel, - warnings = warnings, - verbose = verbose) + FUN_CRIT <- match.fun(iInputsCrit$FUN_CRIT) + FUN_CRIT(InputsCrit = iInputsCrit, + OutputsModel = OutputsModel, + warnings = warnings, + verbose = verbose) }) listValCrit <- sapply(listOutputsCrit, function(x) x[["CritValue"]]) @@ -70,7 +72,7 @@ ErrorCrit <- function(InputsCrit, OutputsModel, FUN_CRIT, warnings = TRUE, verbo } } - + return(OutputsCrit) }