From a106f301dba0405ac8fc5318c2ad1921365f8a11 Mon Sep 17 00:00:00 2001
From: Delaigue Olivier <olivier.delaigue@irstea.fr>
Date: Tue, 1 Dec 2020 19:25:07 +0100
Subject: [PATCH] v1.6.8.22 fix(SeriesAggreg): force character format to
 .AggregConvertFunTable - in order getAggregConvertFun to be compatible qith R
 < 4.0 (stringAsFactors = TRUE) Refs #41

---
 DESCRIPTION           |  2 +-
 R/UtilsSeriesAggreg.R | 23 ++++++++++++-----------
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 3664b2ba..cd4a38ff 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.6.8.21
+Version: 1.6.8.22
 Date: 2020-12-01
 Authors@R: c(
   person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")),
diff --git a/R/UtilsSeriesAggreg.R b/R/UtilsSeriesAggreg.R
index 247ce7df..3568125e 100644
--- a/R/UtilsSeriesAggreg.R
+++ b/R/UtilsSeriesAggreg.R
@@ -43,21 +43,22 @@ getSeriesAggregClass <- function(Format) {
 }
 
 .AggregConvertFunTable <- rbind(
-    data.frame(ConvertFun = "mean",
-               Outputs = c("Prod","Rout","Exp","SnowPack","ThermalState",
-                       "Gratio","Temp","Gthreshold","Glocalmax","LayerTempMean", "T")),
-    data.frame(ConvertFun = "sum",
-               Outputs = c("PotEvap","Precip","Pn","Ps","AE","Perc","PR","Q9",
-                       "Q1","Exch","AExch1","AExch2","AExch","QR","QRExp",
-                       "QD","Qsim","Pliq","Psol","PotMelt","Melt","PliqAndMelt",
-                       "LayerPrecip","LayerFracSolidPrecip", "Qmm", "Qls", "E", "P", "Qupstream"))
-  )
+  data.frame(ConvertFun = "mean",
+             Outputs = c("Prod","Rout","Exp","SnowPack","ThermalState",
+                         "Gratio","Temp","Gthreshold","Glocalmax","LayerTempMean", "T"),
+             stringsAsFactors = FALSE), # R < 4.0 compatibility: avoids mixing numeric and factor into numeric in getAggregConvertFun()
+  data.frame(ConvertFun = "sum",
+             Outputs = c("PotEvap","Precip","Pn","Ps","AE","Perc","PR","Q9",
+                         "Q1","Exch","AExch1","AExch2","AExch","QR","QRExp",
+                         "QD","Qsim","Pliq","Psol","PotMelt","Melt","PliqAndMelt",
+                         "LayerPrecip","LayerFracSolidPrecip", "Qmm", "Qls", "E", "P", "Qupstream"),
+             stringsAsFactors = FALSE) # R < 4.0 compatibility: avoids mixing numeric and factor into numeric in getAggregConvertFun()
+)
 
 getAggregConvertFun <- function(Outputs) {
-
   res <- sapply(Outputs, function(iOutputs) {
     iRes <- .AggregConvertFunTable$ConvertFun[.AggregConvertFunTable$Outputs == iOutputs]
-    iRes <- ifelse(any(is.na(iRes)), NA, iRes)
+    iRes <- ifelse(any(is.na(iRes)), NA, iRes) # R < 4.0 compatibility
   })
   return(res)
 }
-- 
GitLab