reduce | R Documentation |
Transform all the date ranges together as a set to produce a
new set of date ranges. Ranges separated by a gap of at least min.gapwidth
days are not merged.
reduce(df, begin, end, ..., agg_cols = NULL, agg = "sum", min.gapwidth = 5)
df |
data.frame |
begin |
name of column |
end |
name of column in |
... |
names of columns in |
agg_cols |
list with columns in |
agg |
aggregation type (defaults to "sum") |
min.gapwidth |
ranges separated by a gap of at least |
This function is adopted from IRanges::reduce()
.
An object of class "reduce"
.
The function summary
is used to obtain and print a summary of the results.
An object of class "reduce"
is a list usually containing at least the
following elements:
df |
data frame with reduced time periods |
begin |
name of column in |
end |
name of column in |
cols |
names of columns in |
Martin Haringa
portfolio <- structure(list(policy_nr = c("12345", "12345", "12345", "12345", "12345", "12345", "12345", "12345", "12345", "12345", "12345"), productgroup = c("fire", "fire", "fire", "fire", "fire", "fire", "fire", "fire", "fire", "fire", "fire"), product = c("contents", "contents", "contents", "contents", "contents", "contents", "contents", "contents", "contents", "contents", "contents"), begin_dat = structure(c(16709,16740, 16801, 17410, 17440, 17805, 17897, 17956, 17987, 18017, 18262), class = "Date"), end_dat = structure(c(16739, 16800, 16831, 17439, 17531, 17896, 17955, 17986, 18016, 18261, 18292), class = "Date"), premium = c(89L, 58L, 83L, 73L, 69L, 94L, 91L, 97L, 57L, 65L, 55L)), row.names = c(NA, -11L), class = "data.frame") # Merge periods pt1 <- reduce(portfolio, begin = begin_dat, end = end_dat, policy_nr, productgroup, product, min.gapwidth = 5) # Aggregate per period summary(pt1, period = "days", policy_nr, productgroup, product) # Merge periods and sum premium per period pt2 <- reduce(portfolio, begin = begin_dat, end = end_dat, policy_nr, productgroup, product, agg_cols = list(premium), min.gapwidth = 5) # Create summary with aggregation per week summary(pt2, period = "weeks", policy_nr, productgroup, product)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.