From ec429713333fbc17ac20482b30e8396d7ecfe2fe Mon Sep 17 00:00:00 2001
From: Delaigue Olivier <olivier.delaigue@irstea.priv>
Date: Mon, 1 Apr 2019 14:17:14 +0200
Subject: [PATCH] v1.2.12.29 CLEAN: weights argument renamed into Weights in
 CreateInputsCrit

---
 DESCRIPTION             |  2 +-
 NEWS.rmd                |  4 ++--
 R/CreateInputsCrit.R    | 32 ++++++++++++++++----------------
 man/CreateInputsCrit.Rd | 24 ++++++++++++------------
 4 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 54a0a351..8b8c2a8f 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.12.28
+Version: 1.2.12.29
 Date: 2019-04-01
 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 415c21c3..d5d3bc99 100644
--- a/NEWS.rmd
+++ b/NEWS.rmd
@@ -31,11 +31,11 @@ output:
 
 #### New features
 
-- <code>CreateInputsCrit()</code> now can prepare an <code>InputsCrit</code> object in order to compute a single criterion (<code>Single</code> class), multiple criteria (<code>Multi</code> class) with the <code>ErrorCrit()</code> function. So it is now possible to set the following arguments as atomic (as before) or as list: <code>FUN_CRIT</code>, <code>Obs</code>, <code>BoolCrit</code>, <code>transfo</code>, <code>weights</code>. If the list format is chosen, all the lists must have the same length.
+- <code>CreateInputsCrit()</code> now can prepare an <code>InputsCrit</code> object in order to compute a single criterion (<code>Single</code> class), multiple criteria (<code>Multi</code> class) with the <code>ErrorCrit()</code> function. So it is now possible to set the following arguments as atomic (as before) or as list: <code>FUN_CRIT</code>, <code>Obs</code>, <code>BoolCrit</code>, <code>transfo</code>, <code>Weights</code>. If the list format is chosen, all the lists must have the same length.
 
 - <code>CreateInputsCrit()</code> now presents a <code>VarObs</code> argument in order to allow to prepare an <code>InputsCrit</code> object in order run a criterion on other variable than observed discharges with the <code>ErrorCrit()</code> function (e.g. SCA, SWE).
 
-- <code>CreateInputsCrit()</code> now presents a <code>weights</code> argument in order to allow to prepare an <code>InputsCrit</code> object in order to compute a composite criterion (<code>Compo</code> class) with <code>ErrorCrit()</code> or <code>Calibration_Michel()</code>.
+- <code>CreateInputsCrit()</code> now presents a <code>Weights</code> argument in order to allow to prepare an <code>InputsCrit</code> object in order to compute a composite criterion (<code>Compo</code> class) with <code>ErrorCrit()</code> or <code>Calibration_Michel()</code>.
 
 - <code>CreateInputsCrit()</code> now presents a <code>warnings</code> argument to replace the verbose action (the <code>verbose</code> argument is kept to print messages).
 
diff --git a/R/CreateInputsCrit.R b/R/CreateInputsCrit.R
index 355b8681..02880748 100644
--- a/R/CreateInputsCrit.R
+++ b/R/CreateInputsCrit.R
@@ -6,7 +6,7 @@ CreateInputsCrit <- function(FUN_CRIT,
                              VarObs = "Q",
                              BoolCrit = NULL,
                              transfo = "",
-                             weights = NULL,
+                             Weights = NULL,
                              Ind_zeroes = NULL, # deprecated
                              epsilon = NULL,
                              warnings = TRUE,
@@ -74,18 +74,18 @@ CreateInputsCrit <- function(FUN_CRIT,
                    BoolCrit   = BoolCrit,
                    idLayer    = idLayer,
                    transfo    = transfo,
-                   weights    = weights,
+                   Weights    = Weights,
                    epsilon    = epsilon)
   
   
   ## check lists lengths
   for (iArgs in names(listArgs)) {
-    if (iArgs %in% c("weights", "BoolCrit", "epsilon")) {
+    if (iArgs %in% c("Weights", "BoolCrit", "epsilon")) {
       if (any(is.null(listArgs[[iArgs]]))) {
         listArgs[[iArgs]] <- lapply(seq_along(listArgs$FUN_CRIT), function(x) NULL)
       }
     }
-    if (iArgs %in% c("FUN_CRIT", "VarObs", "transfo", "weights") & length(listArgs[[iArgs]]) > 1L) {
+    if (iArgs %in% c("FUN_CRIT", "VarObs", "transfo", "Weights") & length(listArgs[[iArgs]]) > 1L) {
       listArgs[[iArgs]] <- as.list(listArgs[[iArgs]])
     }
     if (!is.list(listArgs[[iArgs]])) {
@@ -142,9 +142,9 @@ CreateInputsCrit <- function(FUN_CRIT,
   }
   
   
-  ## check 'weights'
-  if (length(listArgs$weights) > 1 & sum(unlist(listArgs$weights)) == 0 & !any(sapply(listArgs$weights, is.null))) {
-    stop("sum of 'weights' cannot be equal to zero")
+  ## check 'Weights'
+  if (length(listArgs$Weights) > 1 & sum(unlist(listArgs$Weights)) == 0 & !any(sapply(listArgs$Weights, is.null))) {
+    stop("sum of 'Weights' cannot be equal to zero")
   }
 
   
@@ -171,7 +171,7 @@ CreateInputsCrit <- function(FUN_CRIT,
           identical(iListArgs2$FUN_CRIT, ErrorCrit_KGE2) | identical(iListArgs2$FUN_CRIT, ErrorCrit_RMSE))) {
       stop("incorrect 'FUN_CRIT' for use in 'CreateInputsCrit'", call. = FALSE)
     }
-    if (identical(iListArgs2$FUN_CRIT, ErrorCrit_RMSE) & length(listArgs$weights) > 1 & all(!is.null(unlist(listArgs$weights)))) {
+    if (identical(iListArgs2$FUN_CRIT, ErrorCrit_RMSE) & length(listArgs$Weights) > 1 & all(!is.null(unlist(listArgs$Weights)))) {
       stop("calculating a composite criterion with the RMSE is not allowed since RMSE is not a dimensionless metric", call. = FALSE)
     }
     
@@ -227,10 +227,10 @@ CreateInputsCrit <- function(FUN_CRIT,
       stop(msgTransfo, call. = FALSE)
     }
     
-    ## check 'weights'
-    if (!is.null(iListArgs2$weights)) {
-      if (!is.vector(iListArgs2$weights) | length(iListArgs2$weights) != 1 | !is.numeric(iListArgs2$weights) | any(iListArgs2$weights < 0)) {
-        stop("'weights' must be a single (list of) positive or equal to zero value(s)", call. = FALSE)
+    ## check 'Weights'
+    if (!is.null(iListArgs2$Weights)) {
+      if (!is.vector(iListArgs2$Weights) | length(iListArgs2$Weights) != 1 | !is.numeric(iListArgs2$Weights) | any(iListArgs2$Weights < 0)) {
+        stop("'Weights' must be a single (list of) positive or equal to zero value(s)", call. = FALSE)
       }
     }
     
@@ -262,7 +262,7 @@ CreateInputsCrit <- function(FUN_CRIT,
                         idLayer    = iListArgs2$idLayer,
                         transfo    = iListArgs2$transfo,
                         epsilon    = iListArgs2$epsilon,
-                        weights    = iListArgs2$weights)
+                        Weights    = iListArgs2$Weights)
     class(iInputsCrit) <- c("Single", "InputsCrit", ObjectClass)
     return(iInputsCrit)
     
@@ -315,11 +315,11 @@ CreateInputsCrit <- function(FUN_CRIT,
   ## if only one criterion --> not a list of InputsCrit but directly an InputsCrit
   if (length(InputsCrit) < 2) {
     InputsCrit <- InputsCrit[[1L]]
-    InputsCrit["weights"] <- list(weights = NULL)
+    InputsCrit["Weights"] <- list(Weights = NULL)
   } else {
-    if (any(sapply(listArgs$weights, is.null))) {
+    if (any(sapply(listArgs$Weights, is.null))) {
       for (iListArgs in InputsCrit) {
-        iListArgs$weights <- NULL
+        iListArgs$Weights <- NULL
       }
       class(InputsCrit) <- c("Multi", "InputsCrit", ObjectClass)
     } else {
diff --git a/man/CreateInputsCrit.Rd b/man/CreateInputsCrit.Rd
index 16553be6..e35d4e29 100644
--- a/man/CreateInputsCrit.Rd
+++ b/man/CreateInputsCrit.Rd
@@ -11,7 +11,7 @@
 \usage{
 CreateInputsCrit(FUN_CRIT, InputsModel, RunOptions,
   Qobs, Obs, VarObs = "Q", BoolCrit = NULL,
-  transfo = "", weights = NULL,
+  transfo = "", Weights = NULL,
   Ind_zeroes = NULL, epsilon = NULL,
   warnings = TRUE, verbose = TRUE)
 }
@@ -34,7 +34,7 @@ CreateInputsCrit(FUN_CRIT, InputsModel, RunOptions,
 
 \item{transfo}{(optional) [character (atomic or list)] name of the transformation (e.g. \code{""}, \code{"sqrt"}, \code{"log"}, \code{"inv"}, \code{"sort"})}
 
-\item{weights}{(optional) [numeric (atomic or list)] vector of weights necessary to calculate a composite criterion (the same length as \code{FUN_CRIT}) giving the weights to use for elements of \code{FUN_CRIT} [-]. See details}
+\item{Weights}{(optional) [numeric (atomic or list)] vector of weights necessary to calculate a composite criterion (the same length as \code{FUN_CRIT}) giving the weights to use for elements of \code{FUN_CRIT} [-]. See details}
 
 \item{Ind_zeroes}{(deprecated) [numeric] indices of the time steps where zeroes are observed}
 
@@ -55,12 +55,12 @@ CreateInputsCrit(FUN_CRIT, InputsModel, RunOptions,
     \emph{$BoolCrit  } \tab [boolean] boolean giving the time steps considered in the computation \cr
     \emph{$transfo   } \tab [character] name of the transformation (e.g. \code{""}, \code{"sqrt"}, \code{"log"}, \code{"inv"}, \code{"sort"}) \cr
     \emph{$epsilon   } \tab [numeric] small value to add to all observations and simulations when \code{"log"} or \code{"inv"} transformations are used [same unit as \code{Obs}] \cr
-    \emph{$weights   } \tab [numeric] vector (same length as \code{VarObs}) giving the weights to use for elements of \code{FUN_CRIT} [-] \cr
+    \emph{$Weights   } \tab [numeric] vector (same length as \code{VarObs}) giving the weights to use for elements of \code{FUN_CRIT} [-] \cr
   }
   
-When \code{weights = NULL}, \code{CreateInputsCrit} returns an object of class \emph{Single} that is  a list such as the one described above. \cr
-When \code{weights} contains at least one \code{NULL} value and \code{Obs} contains a list of observations, \code{CreateInputsCrit} returns an object of class \emph{Multi} that is a list of lists such as the one described above. The \code{\link{ErrorCrit}} function will then compute the different criteria prepared by \code{CreateInputsCrit}. \cr 
-When \code{weights} is a list of at least 2 numerical values, \code{CreateInputsCrit} returns an object of class \emph{Compo} that is a list of lists such as the one described above. This object will be useful to compute composite criterion with the \code{\link{ErrorCrit}} function. \cr
+When \code{Weights = NULL}, \code{CreateInputsCrit} returns an object of class \emph{Single} that is  a list such as the one described above. \cr
+When \code{Weights} contains at least one \code{NULL} value and \code{Obs} contains a list of observations, \code{CreateInputsCrit} returns an object of class \emph{Multi} that is a list of lists such as the one described above. The \code{\link{ErrorCrit}} function will then compute the different criteria prepared by \code{CreateInputsCrit}. \cr 
+When \code{Weights} is a list of at least 2 numerical values, \code{CreateInputsCrit} returns an object of class \emph{Compo} that is a list of lists such as the one described above. This object will be useful to compute composite criterion with the \code{\link{ErrorCrit}} function. \cr
 To calculate composite or multiple criteria, it is necessary to use the \code{ErrorCrit} function. The other \code{ErrorCrit_*} functions (e.g. \code{\link{ErrorCrit_RMSE}}, \code{\link{ErrorCrit_NSE}}) can only use objects of class \emph{Single} (and not \emph{Multi} or \emph{Compo}). \cr
 }
 
@@ -74,10 +74,10 @@ Creation of the \code{InputsCrit} object required to the \code{ErrorCrit_*} func
 Users wanting to use \code{FUN_CRIT} functions that are not included in the package must create their own InputsCrit object accordingly. \cr \cr
 The epsilon value is useful when \code{"log"} or \code{"inv"} transformations are used (to avoid calculation of the inverse or of the logarithm of zero). The impact of this value and a recommendation about the epsilon value to use (usually one hundredth of average observation) are discussed in Pushpalatha et al. (2012) for NSE and in Santos et al. (2018) for KGE and KGE'. \cr \cr
 We do not advise computing KGE or KGE' with log-transformation as it might be wrongly influenced by discharge values close to 0 or 1 and the criterion value is dependent on the discharge unit. See Santos et al. (2018) for more details and alternative solutions (see the references list below). \cr \cr
-Users can set the following arguments as atomic or list: \code{FUN_CRIT}, \code{Obs}, \code{VarObs}, \code{BoolCrit}, \code{transfo}, \code{weights}. If the list format is chosen, all the lists must have the same length. \cr
+Users can set the following arguments as atomic or list: \code{FUN_CRIT}, \code{Obs}, \code{VarObs}, \code{BoolCrit}, \code{transfo}, \code{Weights}. If the list format is chosen, all the lists must have the same length. \cr
 Calculation of a single criterion (e.g. NSE computed on discharge) is prepared by providing to \code{CreateInputsCrit} arguments atomics only. \cr
-Calculation of multiple criteria (e.g. NSE computed on discharge and RMSE computed on discharge) is prepared by providing to \code{CreateInputsCrit} arguments lists except for \code{weights} that must be set as \code{NULL}. \cr
-Calculation of a composite criterion (e.g. the average between NSE computed on dscharge and NSE computed on log of discharge) is prepared by providing to \code{CreateInputsCrit} arguments lists including \code{weights}. \cr
+Calculation of multiple criteria (e.g. NSE computed on discharge and RMSE computed on discharge) is prepared by providing to \code{CreateInputsCrit} arguments lists except for \code{Weights} that must be set as \code{NULL}. \cr
+Calculation of a composite criterion (e.g. the average between NSE computed on dscharge and NSE computed on log of discharge) is prepared by providing to \code{CreateInputsCrit} arguments lists including \code{Weights}. \cr
 \code{\link{ErrorCrit_RMSE}} cannot be used in a composite criterion since it is not a unitless value.
 }
 
@@ -109,7 +109,7 @@ InputsCritSingle <- CreateInputsCrit(FUN_CRIT = ErrorCrit_NSE,
                                      InputsModel = InputsModel, RunOptions = RunOptions,
                                      Obs = list(BasinObs$Qmm[Ind_Run]),
                                      VarObs = "Q", transfo = "",
-                                     weights = NULL)
+                                     Weights = NULL)
 str(InputsCritSingle)
 invisible(ErrorCrit(InputsCrit = InputsCritSingle, OutputsModel = OutputsModel))
 
@@ -118,7 +118,7 @@ InputsCritMulti <- CreateInputsCrit(FUN_CRIT = list(ErrorCrit_RMSE, ErrorCrit_NS
                                     InputsModel = InputsModel, RunOptions = RunOptions,
                                     Obs = list(BasinObs$Qmm[Ind_Run], BasinObs$Qmm[Ind_Run]),
                                     VarObs = list("Q", "Q"), transfo = list("", "sqrt"),
-                                    weights = NULL)
+                                    Weights = NULL)
 str(InputsCritMulti)                                         
 invisible(ErrorCrit(InputsCrit = InputsCritMulti, OutputsModel = OutputsModel))
 
@@ -128,7 +128,7 @@ InputsCritCompo <- CreateInputsCrit(FUN_CRIT = list(ErrorCrit_NSE, ErrorCrit_NSE
                                     InputsModel = InputsModel, RunOptions = RunOptions,
                                     Obs = list(BasinObs$Qmm[Ind_Run], BasinObs$Qmm[Ind_Run]),
                                     VarObs = list("Q", "Q"), transfo = list("", "log"),
-                                    weights = list(0.4, 0.6))
+                                    Weights = list(0.4, 0.6))
 str(InputsCritCompo)                                         
 invisible(ErrorCrit(InputsCrit = InputsCritCompo, OutputsModel = OutputsModel))
 }
-- 
GitLab