From 6995f167a79c839e702bd02e758cccdcf2d75cc0 Mon Sep 17 00:00:00 2001 From: Dorchies David <david.dorchies@irstea.fr> Date: Thu, 3 Dec 2020 18:10:40 +0100 Subject: [PATCH] v1.6.8.26 fix: NA produced when aggregating from montly time step Refs #41, #73 --- DESCRIPTION | 2 +- R/SeriesAggreg.data.frame.R | 14 ++++++++++---- tests/testthat/test-SeriesAggreg.R | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 4166d09d..2e9044b9 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.25 +Version: 1.6.8.26 Date: 2020-12-02 Authors@R: c( person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")), diff --git a/R/SeriesAggreg.data.frame.R b/R/SeriesAggreg.data.frame.R index ad37d16b..12c4184f 100644 --- a/R/SeriesAggreg.data.frame.R +++ b/R/SeriesAggreg.data.frame.R @@ -102,10 +102,16 @@ SeriesAggreg.data.frame <- function(x, stop <- sprintf("%i-12-31 00:00:00", as.numeric(format(TabSeries2$DatesR[nrow(TabSeries2)], format = "%Y")) + 1) - by <- - ifelse(grepl("hours", format(diff( - x$DatesR[1:2] - ))), yes = "hours", no = "days") + Ts <- format(diff(x$DatesR[1:2])) + if(gsub("[0-9]+ ", "", Ts) == "hours") { + by <- "hours" + } else { + if(gsub(" days$", "", Ts) == "1") { + by <- "days" + } else { + by <- "months" + } + } fakeTs <- data.frame(DatesR = seq( from = as.POSIXct(start, tz = "UTC"), diff --git a/tests/testthat/test-SeriesAggreg.R b/tests/testthat/test-SeriesAggreg.R index 3c84e4e3..50994219 100644 --- a/tests/testthat/test-SeriesAggreg.R +++ b/tests/testthat/test-SeriesAggreg.R @@ -194,6 +194,6 @@ test_that("SeriesAggreg from and to the same time step should return initial tim PotEvap = BasinObs$E ) I2 <- SeriesAggreg(InputsModel, "%Y%m") - I3 <- SeriesAggreg(I2, "%Y%m") - expect_equal(I2, I3) + expect_warning(SeriesAggreg(I2, "%Y%m"), regexp = "No time-step conversion was performed") + expect_equal(I2, suppressWarnings(SeriesAggreg(I2, "%Y%m"))) }) -- GitLab