From 1c50513aab3850a2b172a85373fc0fd125277b48 Mon Sep 17 00:00:00 2001 From: Dorchies David <david.dorchies@irstea.fr> Date: Mon, 23 Nov 2020 10:12:27 +0100 Subject: [PATCH] v1.6.8.10 refactor: Replace SeriesAggreg2.default by SeriesAggreg2.list - Move `SeriesAggreg2.data.frame` to its own source file - Simplification of methods argument lists - Update `SeriesAggreg2` documentation Refs #41 --- .Rbuildignore | 2 + DESCRIPTION | 2 +- NAMESPACE | 3 +- NEWS.md | 11 +- R/SeriesAggreg2.InputsModel.R | 15 +- R/SeriesAggreg2.OutputsModel.R | 25 +-- R/SeriesAggreg2.R | 157 +----------------- R/SeriesAggreg2.data.frame.R | 149 +++++++++++++++++ ...Aggreg2.default.R => SeriesAggreg2.list.R} | 20 +-- man/SeriesAggreg2.Rd | 26 +-- 10 files changed, 186 insertions(+), 224 deletions(-) create mode 100644 R/SeriesAggreg2.data.frame.R rename R/{SeriesAggreg2.default.R => SeriesAggreg2.list.R} (69%) diff --git a/.Rbuildignore b/.Rbuildignore index 7cc5eb75..0e731ea9 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -4,3 +4,5 @@ ^packrat/ ^tests/tmp/ ^\.regressionignore$ +^\.gitlab-ci\.yml$ +^\.vscode$ diff --git a/DESCRIPTION b/DESCRIPTION index a524f39e..00b5589d 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.9 +Version: 1.6.8.10 Date: 2020-11-20 Authors@R: c( person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")), diff --git a/NAMESPACE b/NAMESPACE index 09d0f188..067f5e39 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -10,7 +10,7 @@ useDynLib(airGR, .registration = TRUE) ##################################### S3method("plot", "OutputsModel") S3method("SeriesAggreg2", "data.frame") -S3method("SeriesAggreg2", "default") +S3method("SeriesAggreg2", "list") S3method("SeriesAggreg2", "InputsModel") S3method("SeriesAggreg2", "OutputsModel") @@ -52,6 +52,7 @@ export(RunModel_GR6J) export(RunModel_Lag) export(SeriesAggreg) export(SeriesAggreg2) +export(SeriesAggreg2.list) export(SeriesAggreg2.data.frame) export(SeriesAggreg2.InputsModel) export(SeriesAggreg2.OutputsModel) diff --git a/NEWS.md b/NEWS.md index d1f3059e..9e82f16a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,17 +2,12 @@ -### 1.6.8.8 Release Notes (2020-11-20) +### 1.6.8.10 Release Notes (2020-11-21) #### New features -- Added <code>SeriesAggreg2</code> method. -- Added <code>SeriesAggreg2.default()</code> function. -- Added <code>SeriesAggreg2.InputsModel()</code> function. -- Added <code>SeriesAggreg2.OutputsModel()</code> function. -- Added <code>SeriesAggreg2.data.frame()</code> function. This new verson of the <code>SeriesAggreg()</code> function allows to compute regimes. -- Added<code>.AggregConvertFun()</code> private function in order to choose automatically the <code>ConvertFun</code> to apply on each element of <code>InputsModel</code> and <code>OutputsModel</code> ojects. - +- Added <code>SeriesAggreg2</code> S3 method with functions for `InputsModel`, `OutputsModel`, `list`, `data.frame` class objects. This new version of the <code>SeriesAggreg()</code> function allows to compute regimes. +- Added<code>.AggregConvertFun()</code> private function in order to choose automatically the <code>ConvertFun</code> to apply on each element of <code>InputsModel</code> and <code>OutputsModel</code> objects. #### Bug fixes diff --git a/R/SeriesAggreg2.InputsModel.R b/R/SeriesAggreg2.InputsModel.R index 5599e7ad..c969f36a 100644 --- a/R/SeriesAggreg2.InputsModel.R +++ b/R/SeriesAggreg2.InputsModel.R @@ -1,21 +1,10 @@ -SeriesAggreg2.InputsModel <- function(TabSeries, - Format, - TimeFormat = NULL, - NewTimeFormat = NULL, - YearFirstMonth = 1, TimeLag = 0, - verbose = TRUE, ..., simplify = FALSE) { +SeriesAggreg2.InputsModel <- function(TabSeries, Format, ...) { if (!inherits(TabSeries, "InputsModel")) { stop("to be used with 'InputsModel' object") } - res <- SeriesAggreg2.default(TabSeries = TabSeries, - Format = Format, - TimeFormat = TimeFormat, - NewTimeFormat = NewTimeFormat, - YearFirstMonth = YearFirstMonth, TimeLag = TimeLag, - verbose = verbose, - simplify = simplify) + res <- SeriesAggreg2.list(TabSeries = TabSeries, Format, ...) if (inherits(TabSeries, "CemaNeige")) { res$ZLayers <- TabSeries$ZLayers diff --git a/R/SeriesAggreg2.OutputsModel.R b/R/SeriesAggreg2.OutputsModel.R index 6c086f4d..978ffc13 100644 --- a/R/SeriesAggreg2.OutputsModel.R +++ b/R/SeriesAggreg2.OutputsModel.R @@ -1,24 +1,13 @@ -SeriesAggreg2.OutputsModel <- function(TabSeries, - Format, - TimeFormat, - NewTimeFormat, - YearFirstMonth = 1, TimeLag = 0, - verbose = TRUE, ..., simplify = FALSE) { - +SeriesAggreg2.OutputsModel <- function(TabSeries, Format, ...) { + if (!inherits(TabSeries, "OutputsModel")) { stop("to be used with 'OutputsModel' object") } - - res <- SeriesAggreg2.default(TabSeries = TabSeries, - Format = Format, - TimeFormat = TimeFormat, - NewTimeFormat = NewTimeFormat, - YearFirstMonth = YearFirstMonth, TimeLag = TimeLag, - verbose = verbose, - simplify = simplify) - + + res <- SeriesAggreg2.list(TabSeries, Format, ...) + res$StateEnd <- TabSeries$StateEnd - + return(res) - + } \ No newline at end of file diff --git a/R/SeriesAggreg2.R b/R/SeriesAggreg2.R index 207b92dd..3dabbcab 100644 --- a/R/SeriesAggreg2.R +++ b/R/SeriesAggreg2.R @@ -1,158 +1,3 @@ -SeriesAggreg2 <- function(TabSeries, - Format, TimeFormat = NULL, NewTimeFormat = NULL, - YearFirstMonth = 1, TimeLag = 0, - verbose = TRUE, - ...) { +SeriesAggreg2 <- function(TabSeries, Format, ...) { UseMethod("SeriesAggreg2") } - - -SeriesAggreg2.data.frame <- function(TabSeries, Format, TimeFormat = NULL, NewTimeFormat = NULL, - YearFirstMonth = 1, TimeLag = 0, verbose = TRUE, ..., ConvertFun) { - - ## Arguments checks - if (!is.null(TimeFormat)) { - warning("deprecated 'TimeFormat' argument", call. = FALSE) - } - if (!is.null(NewTimeFormat)) { - if (missing(Format)) { - TimeStep <- c("hourly", "daily", "monthly", "yearly") - NewTimeFormat <- match.arg(NewTimeFormat, choices = TimeStep) - Format <- switch(NewTimeFormat, - hourly = "%Y%m%d%h", - daily = "%Y%m%d", - monthly = "%Y%m", - yearly = "%Y") - msgNewTimeFormat <- sprintf(" 'Format' automatically set to %s", sQuote(Format)) - } else { - msgNewTimeFormat <- NULL - } - warning("deprecated 'NewTimeFormat' argument: please use 'Format' instead.", - msgNewTimeFormat, call. = FALSE) - } - ## check TabSeries - if (!is.data.frame(TabSeries)) { - stop("'TabSeries' must be a data.frame containing the dates and data to be aggregated") - } - if (ncol(TabSeries) < 2) { - stop("'TabSeries' must contain at least two columns (including the column of dates)") - } - ## check TabSeries date column - if (!inherits(TabSeries[[1L]], "POSIXt")) { - stop("'TabSeries' first column must be a vector of class 'POSIXlt' or 'POSIXct'") - } - if (inherits(TabSeries[[1L]], "POSIXlt")) { - TabSeries[[1L]] <- as.POSIXct(TabSeries[[1L]]) - } - ## check TabSeries other columns (boolean converted to numeric) - apply(TabSeries[, -1L, drop = FALSE], MARGIN = 2, FUN = function(iCol) { - if (!is.numeric(iCol)) { - stop("'TabSeries' columns (other than the first one) must be of numeric class") - } - }) - ## check Format - listFormat <- c("%Y%m%d", "%Y%m", "%Y", "%m", "%d") - Format <- gsub(pattern = "[[:punct:]]+", replacement = "%", Format) - Format <- match.arg(Format, choices = listFormat) - ## check ConvertFun - listConvertFun <- c("sum", "mean") - ConvertFun <- listConvertFun[match(ConvertFun, listConvertFun)] - if (anyNA(ConvertFun)) { - stop("'ConvertFun' should be a one of 'sum' or 'mean'") - } - if (length(ConvertFun) != (ncol(TabSeries) - 1)) { - stop( - sprintf("'ConvertFun' must be of length %i (ncol(TabSeries)-1)", ncol(TabSeries) - 1) - ) - } - ## check YearFirstMonth - msgYearFirstMonth <- "'YearFirstMonth' should be a single vector of numeric value between 1 and 12" - YearFirstMonth <- match(YearFirstMonth, 1:12) - if (anyNA(YearFirstMonth)) { - stop(msgYearFirstMonth) - } - if (length(YearFirstMonth) != 1) { - stop(msgYearFirstMonth) - } - if (YearFirstMonth != 1 & Format != "%Y") { - warning("'YearFirstMonth' is ignored beacause Format != '%Y'") - } - ## check TimeLag - msgTimeLag <- "'TimeLag' should be a single vector of a positive numeric value" - if (!is.vector(TimeLag)) { - stop(msgTimeLag) - } - if (!is.numeric(TimeLag)) { - stop(msgTimeLag) - } - if (length(TimeLag) != 1 | !any(TimeLag >= 0)) { - stop(msgTimeLag) - } - - - TabSeries0 <- TabSeries - colnames(TabSeries0)[1L] <- "DatesR" - TabSeries0$DatesR <- TabSeries0$DatesR + TimeLag - - TabSeries2 <- TabSeries0 - - if (!Format %in% c("%d", "%m")) { - start <- sprintf("%i-01-01 00:00:00", as.numeric(format(TabSeries2$DatesR[1L], format = "%Y"))-1) - stop <- sprintf("%i-12-31 00:00:00", as.numeric(format(TabSeries2$DatesR[nrow(TabSeries2)], format = "%Y"))+1) - by <- ifelse(grepl("hours", format(diff(TabSeries$DatesR[1:2]))), yes = "hours", no = "days") - fakeTs <- data.frame(DatesR = seq(from = as.POSIXct(start, tz = "UTC"), - to = as.POSIXct(stop , tz = "UTC"), - by = by) + TimeLag) - TabSeries2 <- merge(fakeTs, TabSeries2, by = "DatesR", all.x = TRUE) - } - TabSeries2$DatesRini <- TabSeries2$DatesR %in% TabSeries0$DatesR - - - TabSeries2$Selec2 <- format(TabSeries2$DatesR, Format) - - if (nchar(Format) > 2 | Format == "%Y") { - TabSeries2$Selec <- !duplicated(TabSeries2$Selec2) - if (all(TabSeries2$Selec)) { - warning("the requested time 'Format' is the same as the one in 'TabSeries'. No time-step conversion was performed") - return(TabSeries) - } - if (Format == "%Y") { - yfm <- sprintf("%02.f", YearFirstMonth) - spF1 <- "%m" - spF2 <- "%Y-%m" - TabSeries2$Selec1 <- format(TabSeries2$DatesR, spF1) - TabSeries2$Selec2 <- format(TabSeries2$DatesR, spF2) - TabSeries2$Selec <- !duplicated(TabSeries2$Selec2) & TabSeries2$Selec1 == yfm - } - TabSeries2$Fac2 <- cumsum(TabSeries2$Selec) - } else { - if (Format == "%d") { - spF2 <- "%m-%d" - TabSeries2$Selec2 <- format(TabSeries2$DatesR, spF2) - } - TabSeries2$Fac2 <- TabSeries2$Selec2 - TabSeries2$Selec <- !duplicated(TabSeries2$Selec2) - } - - if ("mean" %in% ConvertFun) { - colTsAggregMean <- c("Fac2", colnames(TabSeries)[-1L][ConvertFun == "mean"]) - tsAggregMean <- aggregate(. ~ Fac2, data = TabSeries2[, colTsAggregMean], FUN = mean, na.action = na.pass) - } else { - tsAggregMean <- data.frame(a = NA, b = NA) - } - if ("sum" %in% ConvertFun) { - colTsAggregSum <- c("Fac2", colnames(TabSeries)[-1L][ConvertFun == "sum"]) - tsAggregSum <- aggregate(. ~ Fac2, data = TabSeries2[, colTsAggregSum], FUN = sum, na.action = na.pass) - } else { - tsAggregSum <- data.frame(a = NA, b = NA) - } - - tsAggreg <- cbind(tsAggregMean, tsAggregSum) - tsAggreg <- tsAggreg[, !duplicated(colnames(tsAggreg))] - tsAggreg <- merge(tsAggreg, TabSeries2[, c("Fac2", "DatesR", "DatesRini", "Selec")], by = "Fac2", all.x = TRUE, all.y = FALSE) - tsAggreg <- tsAggreg[tsAggreg$Selec & tsAggreg$DatesRini, ] - tsAggreg <- tsAggreg[, colnames(TabSeries0)] - return(tsAggreg) - -} - diff --git a/R/SeriesAggreg2.data.frame.R b/R/SeriesAggreg2.data.frame.R new file mode 100644 index 00000000..f50fa3ad --- /dev/null +++ b/R/SeriesAggreg2.data.frame.R @@ -0,0 +1,149 @@ +SeriesAggreg2.data.frame <- function(TabSeries, Format, ConvertFun, TimeFormat = NULL, NewTimeFormat = NULL, + YearFirstMonth = 1, TimeLag = 0, verbose = TRUE, ...) { + + ## Arguments checks + if (!is.null(TimeFormat)) { + warning("deprecated 'TimeFormat' argument", call. = FALSE) + } + if (!is.null(NewTimeFormat)) { + if (missing(Format)) { + TimeStep <- c("hourly", "daily", "monthly", "yearly") + NewTimeFormat <- match.arg(NewTimeFormat, choices = TimeStep) + Format <- switch(NewTimeFormat, + hourly = "%Y%m%d%h", + daily = "%Y%m%d", + monthly = "%Y%m", + yearly = "%Y") + msgNewTimeFormat <- sprintf(" 'Format' automatically set to %s", sQuote(Format)) + } else { + msgNewTimeFormat <- NULL + } + warning("deprecated 'NewTimeFormat' argument: please use 'Format' instead.", + msgNewTimeFormat, call. = FALSE) + } + ## check TabSeries + if (!is.data.frame(TabSeries)) { + stop("'TabSeries' must be a data.frame containing the dates and data to be aggregated") + } + if (ncol(TabSeries) < 2) { + stop("'TabSeries' must contain at least two columns (including the column of dates)") + } + ## check TabSeries date column + if (!inherits(TabSeries[[1L]], "POSIXt")) { + stop("'TabSeries' first column must be a vector of class 'POSIXlt' or 'POSIXct'") + } + if (inherits(TabSeries[[1L]], "POSIXlt")) { + TabSeries[[1L]] <- as.POSIXct(TabSeries[[1L]]) + } + ## check TabSeries other columns (boolean converted to numeric) + apply(TabSeries[, -1L, drop = FALSE], MARGIN = 2, FUN = function(iCol) { + if (!is.numeric(iCol)) { + stop("'TabSeries' columns (other than the first one) must be of numeric class") + } + }) + ## check Format + listFormat <- c("%Y%m%d", "%Y%m", "%Y", "%m", "%d") + Format <- gsub(pattern = "[[:punct:]]+", replacement = "%", Format) + Format <- match.arg(Format, choices = listFormat) + ## check ConvertFun + listConvertFun <- c("sum", "mean") + ConvertFun <- listConvertFun[match(ConvertFun, listConvertFun)] + if (anyNA(ConvertFun)) { + stop("'ConvertFun' should be a one of 'sum' or 'mean'") + } + if (length(ConvertFun) != (ncol(TabSeries) - 1)) { + stop( + sprintf("'ConvertFun' must be of length %i (ncol(TabSeries)-1)", ncol(TabSeries) - 1) + ) + } + ## check YearFirstMonth + msgYearFirstMonth <- "'YearFirstMonth' should be a single vector of numeric value between 1 and 12" + YearFirstMonth <- match(YearFirstMonth, 1:12) + if (anyNA(YearFirstMonth)) { + stop(msgYearFirstMonth) + } + if (length(YearFirstMonth) != 1) { + stop(msgYearFirstMonth) + } + if (YearFirstMonth != 1 & Format != "%Y") { + warning("'YearFirstMonth' is ignored beacause Format != '%Y'") + } + ## check TimeLag + msgTimeLag <- "'TimeLag' should be a single vector of a positive numeric value" + if (!is.vector(TimeLag)) { + stop(msgTimeLag) + } + if (!is.numeric(TimeLag)) { + stop(msgTimeLag) + } + if (length(TimeLag) != 1 | !any(TimeLag >= 0)) { + stop(msgTimeLag) + } + + + TabSeries0 <- TabSeries + colnames(TabSeries0)[1L] <- "DatesR" + TabSeries0$DatesR <- TabSeries0$DatesR + TimeLag + + TabSeries2 <- TabSeries0 + + if (!Format %in% c("%d", "%m")) { + start <- sprintf("%i-01-01 00:00:00", as.numeric(format(TabSeries2$DatesR[1L], format = "%Y"))-1) + stop <- sprintf("%i-12-31 00:00:00", as.numeric(format(TabSeries2$DatesR[nrow(TabSeries2)], format = "%Y"))+1) + by <- ifelse(grepl("hours", format(diff(TabSeries$DatesR[1:2]))), yes = "hours", no = "days") + fakeTs <- data.frame(DatesR = seq(from = as.POSIXct(start, tz = "UTC"), + to = as.POSIXct(stop , tz = "UTC"), + by = by) + TimeLag) + TabSeries2 <- merge(fakeTs, TabSeries2, by = "DatesR", all.x = TRUE) + } + TabSeries2$DatesRini <- TabSeries2$DatesR %in% TabSeries0$DatesR + + + TabSeries2$Selec2 <- format(TabSeries2$DatesR, Format) + + if (nchar(Format) > 2 | Format == "%Y") { + TabSeries2$Selec <- !duplicated(TabSeries2$Selec2) + if (all(TabSeries2$Selec)) { + warning("the requested time 'Format' is the same as the one in 'TabSeries'. No time-step conversion was performed") + return(TabSeries) + } + if (Format == "%Y") { + yfm <- sprintf("%02.f", YearFirstMonth) + spF1 <- "%m" + spF2 <- "%Y-%m" + TabSeries2$Selec1 <- format(TabSeries2$DatesR, spF1) + TabSeries2$Selec2 <- format(TabSeries2$DatesR, spF2) + TabSeries2$Selec <- !duplicated(TabSeries2$Selec2) & TabSeries2$Selec1 == yfm + } + TabSeries2$Fac2 <- cumsum(TabSeries2$Selec) + } else { + if (Format == "%d") { + spF2 <- "%m-%d" + TabSeries2$Selec2 <- format(TabSeries2$DatesR, spF2) + } + TabSeries2$Fac2 <- TabSeries2$Selec2 + TabSeries2$Selec <- !duplicated(TabSeries2$Selec2) + } + + if ("mean" %in% ConvertFun) { + colTsAggregMean <- c("Fac2", colnames(TabSeries)[-1L][ConvertFun == "mean"]) + tsAggregMean <- aggregate(. ~ Fac2, data = TabSeries2[, colTsAggregMean], FUN = mean, na.action = na.pass) + } else { + tsAggregMean <- data.frame(a = NA, b = NA) + } + if ("sum" %in% ConvertFun) { + colTsAggregSum <- c("Fac2", colnames(TabSeries)[-1L][ConvertFun == "sum"]) + tsAggregSum <- aggregate(. ~ Fac2, data = TabSeries2[, colTsAggregSum], FUN = sum, na.action = na.pass) + } else { + tsAggregSum <- data.frame(a = NA, b = NA) + } + + tsAggreg <- cbind(tsAggregMean, tsAggregSum) + tsAggreg <- tsAggreg[, !duplicated(colnames(tsAggreg))] + tsAggreg <- merge(tsAggreg, TabSeries2[, c("Fac2", "DatesR", "DatesRini", "Selec")], by = "Fac2", all.x = TRUE, all.y = FALSE) + tsAggreg <- tsAggreg[tsAggreg$Selec & tsAggreg$DatesRini, ] + tsAggreg <- tsAggreg[, colnames(TabSeries0)] + return(tsAggreg) + +} + diff --git a/R/SeriesAggreg2.default.R b/R/SeriesAggreg2.list.R similarity index 69% rename from R/SeriesAggreg2.default.R rename to R/SeriesAggreg2.list.R index e3bb57a7..fbf7ec49 100644 --- a/R/SeriesAggreg2.default.R +++ b/R/SeriesAggreg2.list.R @@ -1,9 +1,4 @@ -SeriesAggreg2.default <- function(TabSeries, - Format, - TimeFormat = NULL, - NewTimeFormat = NULL, - YearFirstMonth = 1, TimeLag = 0, - verbose = TRUE, ..., simplify = FALSE) { +SeriesAggreg2.list <- function(TabSeries, Format, simplify = FALSE, ...) { if (!inherits(TabSeries, c("InputsModel", "OutputsModel"))) { stop("to be used with InputsModel', or 'OutputsModel' object") @@ -40,11 +35,7 @@ SeriesAggreg2.default <- function(TabSeries, } CemaNeigeLayersAggreg <- lapply(CemaNeigeLayers, function(iLayer) { tmp <- cbind(TabSeries$DatesR, as.data.frame(iLayer)) - res <- SeriesAggreg2(tmp, Format = Format, - TimeFormat = TimeFormat, NewTimeFormat = NewTimeFormat, - ConvertFun = .AggregConvertFun(gsub("[.].*", "", colnames(tmp)[-1L])), - YearFirstMonth = YearFirstMonth, TimeLag = TimeLag, - verbose = verbose) + res <- SeriesAggreg2(tmp, Format, ..., ConvertFun = .AggregConvertFun(gsub("[.].*", "", colnames(tmp)[-1L]))) res <- res[, -1L] colnames(res) <- gsub(".*[.]", "", colnames(res)) res <- as.list(res) @@ -54,12 +45,7 @@ SeriesAggreg2.default <- function(TabSeries, TabSeries2 <- TabSeries[1:which(names(TabSeries) %in% lastCol)] TabSeries2 <- as.data.frame.list(TabSeries2) - NewTabSeries <- SeriesAggreg2(TabSeries = TabSeries2, - Format = Format, - TimeFormat = TimeFormat, NewTimeFormat = NewTimeFormat, - ConvertFun = .AggregConvertFun(colnames(TabSeries2)[-1L]), - YearFirstMonth = YearFirstMonth, TimeLag = TimeLag, - verbose = verbose) + NewTabSeries <- SeriesAggreg2(TabSeries = TabSeries2, Format, ..., ConvertFun = .AggregConvertFun(colnames(TabSeries2)[-1L])) NewTabSeries$zzz <- NULL diff --git a/man/SeriesAggreg2.Rd b/man/SeriesAggreg2.Rd index d2a892bd..a67601e0 100644 --- a/man/SeriesAggreg2.Rd +++ b/man/SeriesAggreg2.Rd @@ -3,6 +3,7 @@ \name{SeriesAggreg2} \alias{SeriesAggreg2} +\alias{SeriesAggreg2.list} \alias{SeriesAggreg2.data.frame} \alias{SeriesAggreg2.InputsModel} \alias{SeriesAggreg2.OutputsModel} @@ -19,30 +20,33 @@ Warning: on the aggregated outputs, the dates correspond to the beginning of the (e.g. for yearly time series 2005-03-01 00:00 = value for period 2005-03-01 00:00 - 2006-02-28 23:59) } +\details{ + \code{\link{SeriesAggreg2.InputsModel}} and \code{\link{SeriesAggreg2.OutputsModel}} + call \code{\link{SeriesAggreg2.list}} which itself calls \code{\link{SeriesAggreg2.data.frame}}. + So, all arguments passed to any \code{\link{SeriesAggreg2}} method will be passed to \code{\link{SeriesAggreg2.data.frame}}. +} + \usage{ \method{SeriesAggreg2}{data.frame}(TabSeries, -Format, TimeFormat, NewTimeFormat, +Format, ConvertFun, TimeFormat = NULL, NewTimeFormat = NULL, YearFirstMonth = 1, TimeLag = 0, -verbose = TRUE, ..., ConvertFun) +verbose = TRUE, \dots) + +\method{SeriesAggreg2}{list}(TabSeries, +Format, simplify = FALSE, \dots) \method{SeriesAggreg2}{InputsModel}(TabSeries, -Format, TimeFormat, NewTimeFormat, -YearFirstMonth = 1, TimeLag = 0, -verbose = TRUE, ..., simplify = FALSE) +Format, \dots) \method{SeriesAggreg2}{OutputsModel}(TabSeries, -Format, TimeFormat, NewTimeFormat, -YearFirstMonth = 1, TimeLag = 0, -verbose = TRUE, ..., simplify = FALSE) +Format, \dots) } \arguments{ \item{TabSeries}{[POSIXt+numeric] data.frame containing the vector of dates (POSIXt) and the time series values numeric)} -\item{...}{...} - \item{Format}{[character] output time step format (i.e. yearly times series: \code{"\%Y"}, monthly time series: \code{"\%Y\%m"}, daily time series: \code{"\%Y\%m\%d"}, monthly regimes \code{"\%m"}, daily regimes \code{"\%d"})} \item{TimeFormat}{(deprecated) [character] input time step format (i.e. \code{"hourly"}, \code{"daily"}, \code{"monthly"} or \code{"yearly"})} @@ -58,6 +62,8 @@ verbose = TRUE, ..., simplify = FALSE) \item{verbose}{(optional) [boolean] boolean indicating if the function is run in verbose mode or not, default = \code{TRUE}} \item{simplify}{(optional) [boolean] XXXXXX, default = \code{FALSE}} + +\item{\dots}{Arguments passed to \code{\link{SeriesAggreg2.list}} and then to \code{\link{SeriesAggreg2.data.frame}}} } -- GitLab