View source: R/time_rows_per_date.R
rows_per_date | R Documentation |
Fast overlap joins. Usually, df
is a very large data.table
(e.g. insurance portfolio) with small interval ranges, and dates
is much
smaller with (e.g.) claim dates.
rows_per_date( df, dates, df_begin, df_end, dates_date, ..., nomatch = NULL, mult = "all" )
df |
data.frame with portfolio (df should include time period) |
dates |
data.frame with dates to join |
df_begin |
column name with begin dates of time period in |
df_end |
column name with end dates of time period in |
dates_date |
column name with dates in |
... |
additional column names in |
nomatch |
When a row (with interval say, |
mult |
When multiple rows in y match to the row in x, |
returned class is equal to class of df
Martin Haringa
library(lubridate) portfolio <- data.frame( begin1 = ymd(c("2014-01-01", "2014-01-01")), end = ymd(c("2014-03-14", "2014-05-10")), termination = ymd(c("2014-03-14", "2014-05-10")), exposure = c(0.2025, 0.3583), premium = c(125, 150), car_type = c("BMW", "TESLA")) ## Find active rows on different dates dates0 <- data.frame(active_date = seq(ymd("2014-01-01"), ymd("2014-05-01"), by = "months")) rows_per_date(portfolio, dates0, df_begin = begin1, df_end = end, dates_date = active_date) ## With extra identifiers (merge claim date with time interval in portfolio) claim_dates <- data.frame(claim_date = ymd("2014-01-01"), car_type = c("BMW", "VOLVO")) ### Only rows are returned that can be matched rows_per_date(portfolio, claim_dates, df_begin = begin1, df_end = end, dates_date = claim_date, car_type) ### When row cannot be matched, NA is returned for that row rows_per_date(portfolio, claim_dates, df_begin = begin1, df_end = end, dates_date = claim_date, car_type, nomatch = NA)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.