View source: R/find_date_cause.R
find_date_cause | R Documentation |
This function will find the first date in an orderd series of columns that is either before or after a cutoff date, inclusive.
find_date_cause( x, ..., period_start = NULL, period_end = NULL, datecol = "start_date", datereason = "start_date_reason", na_fill = "start" ) find_start_date( x, ..., period_start = NULL, period_end = NULL, datecol = "start_date", datereason = "start_date_reason" ) find_end_date( x, ..., period_start = NULL, period_end = NULL, datecol = "end_date", datereason = "end_date_reason" ) constrain_dates(i, period_start, period_end, boundary = "both") assert_positive_timespan(x, date_start, date_end)
x |
a data frame |
... |
an ordered series of date columns (i.e. the most important date to be considered first). |
period_start, period_end |
for the find_ functions, this should be the
name of a column in |
datecol |
the name of the new column to contain the dates |
datereason |
the name of the column to contain the name of the column from which the date came. |
na_fill |
one of either "before" or "after" indicating that the new column should only contain dates before or after the cutoff date. |
i |
a vector of dates |
boundary |
one of "both", "start", or "end". Dates outside of the boundary will be set to NA. |
date_start, date_end |
column name of a date vector |
d <- data.frame( s1 = c(as.Date("2013-01-01") + 0:10, as.Date(c("2012-01-01", "2014-01-01"))), s2 = c(as.Date("2013-02-01") + 0:10, as.Date(c("2012-01-01", "2014-01-01"))), s3 = c(as.Date("2013-01-10") - 0:10, as.Date(c("2012-01-01", "2014-01-01"))), ps = as.Date("2012-12-31"), pe = as.Date("2013-01-09") ) print(dd <- find_date_cause(d, s1, s2, s3, period_start = ps, period_end = pe)) print(bb <- find_date_cause(d, s1, s2, s3, period_start = ps, period_end = pe, na_fill = "end", datecol = "enddate", datereason = "endcause")) find_date_cause(d, s3, s2, s1, period_start = ps, period_end = pe) # works assert_positive_timespan(dd, start_date, pe) # returns a warning because the last date isn't later than the start_date assert_positive_timespan(dd, start_date, s2) with(d, constrain_dates(s1, ps, pe)) with(d, constrain_dates(s2, ps, pe)) with(d, constrain_dates(s3, ps, pe))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.