Proportion of messy dates meeting logical test
Source:R/operate_proportional.R
operate_proportional.RdThese functions provide various proportional tests for messy date
objects, complementing the strict logical comparisons in
?operate_inequalities. Where a plain </>/etc. comparison can only
return TRUE, FALSE, or NA for a messy (imprecise) date, these
functions instead report what proportion of the dates implied by
e1 satisfy the comparison against e2, by expanding both to their
full sets of possible dates first.
Usage
e1 %l% e2
# S3 method for class 'mdate'
e1 %l% e2
e1 %g% e2
# S3 method for class 'mdate'
e1 %g% e2
e1 %ge% e2
# S3 method for class 'mdate'
e1 %ge% e2
e1 %le% e2
# S3 method for class 'mdate'
e1 %le% e2
e1 %><% e2
# S3 method for class 'mdate'
e1 %><% e2
e1 %>=<% e2
# S3 method for class 'mdate'
e1 %>=<% e2Functions
%l%: Tests proportion of dates in the first vector that precede the minimum in the second vector.%g%: Tests proportion of dates in the first vector that follow the maximum in the second vector.%ge%: Tests proportion of dates in the first vector that follow or are equal to the maximum in the second vector.%le%: Tests proportion of dates in the first vector that precede or are equal to the minimum in the second vector.%><%: Tests proportion of dates in the first vector that are between the minimum and maximum dates in the second vector.%>=<%: Tests proportion of dates in the first vector that are between the minimum and maximum dates in the second vector, inclusive.
Examples
as_messydate("2012-06") < as.Date("2012-06-02")
#> [1] NA
as_messydate("2012-06") %l% as_messydate("2012-06-02")
#> [1] 0.03333333
as_messydate("2012-06") > as.Date("2012-06-02")
#> [1] NA
as_messydate("2012-06") %g% as_messydate("2012-06-02")
#> [1] 0.9333333
as_messydate("2012-06") >= as.Date("2012-06-02")
#> [1] NA
as_messydate("2012-06") %ge% as_messydate("2012-06-02")
#> [1] 0.9666667
as_messydate("2012-06") <= as.Date("2012-06-02")
#> [1] NA
as_messydate("2012-06") %le% "2012-06-02"
#> [1] 0.06666667
as_messydate("2012-06") %><% as_messydate("2012-06-15..2012-07-15")
#> [1] 0.516129
as_messydate("2012-06") %>=<% as_messydate("2012-06-15..2012-07-15")
#> [1] 0.5333333