Apply Function Column-wise
Applies an arbitrary function to selected columns of a DTSg
object.
## S3 method for class 'DTSg' colapply( x, fun, ..., cols = self$cols(class = "numeric")[1L], resultCols = NULL, suffix = NULL, helpers = TRUE, funby = NULL, ignoreDST = FALSE, multiplier = 1L, funbyHelpers = NULL, clone = getOption("DTSgClone") )
x |
A |
fun |
A |
... |
Further arguments passed on to |
cols |
A character vector specifying the columns to apply |
resultCols |
An optional character vector of the same length as
|
suffix |
An optional character string. The return values of |
helpers |
A logical specifying if helper data shall be handed over to
|
funby |
One of the temporal aggregation level functions described in
|
ignoreDST |
A logical specifying if day saving time is ignored during
formation of the temporal level. See |
multiplier |
A positive integerish value “multiplying” the
temporal aggregation level of certain |
funbyHelpers |
An optional |
clone |
A logical specifying if the object is modified in place or if a clone (copy) is made beforehand. |
In addition to the ...
argument, this method optionally hands over a
list
argument with helper data called .helpers
to
fun
. .helpers
contains the following named elements:
.dateTime: A POSIXct
vector containing the
.dateTime column.
periodicity: Same as periodicity field. See
DTSg
for further information.
minLag: A difftime
object containing the
minimum time difference between two subsequent timestamps.
maxLag: A difftime
object containing the
maximum time difference between two subsequent timestamps.
Returns a DTSg
object.
# new DTSg object x <- DTSg$new(values = flow) # linear interpolation of missing values ## R6 method x$colapply(fun = interpolateLinear) ## S3 method colapply(x = x, fun = interpolateLinear) # daily cumulative sums per month ## R6 method x$colapply(fun = cumsum, helpers = FALSE, funby = byYm____) ## S3 method colapply(x = x, fun = cumsum, helpers = FALSE, funby = byYm____) # calculate moving averages with the help of 'runner' (all four given # approaches provide the same result with explicitly missing timestamps) if (requireNamespace("runner", quietly = TRUE) && packageVersion("runner") >= numeric_version("0.3.5")) { wrapper <- function(..., .helpers) { runner::runner(..., idx = .helpers[[".dateTime"]]) } ## R6 method x$colapply(fun = runner::runner, f = mean, k = 5 , lag = -2 ) x$colapply(fun = wrapper , f = mean, k = "5 days", lag = "-2 days") x$colapply( fun = runner::runner, f = mean, k = "5 days", lag = "-2 days", idx = x$getCol(col = ".dateTime") ) x$colapply( fun = runner::runner, f = mean, k = "5 days", lag = "-2 days", idx = x[".dateTime"] ) ## S3 method colapply(x = x, fun = runner::runner, f = mean, k = 5 , lag = -2 ) colapply(x = x, fun = wrapper , f = mean, k = "5 days", lag = "-2 days") colapply( x = x, fun = runner::runner, f = mean, k = "5 days", lag = "-2 days", idx = getCol(x = x, col = ".dateTime") ) colapply( x = x, fun = runner::runner, f = mean, k = "5 days", lag = "-2 days", idx = x[".dateTime"] ) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.