Description Usage Arguments Details Value Author(s) See Also Examples

Method for `cut`

applied to mondate objects.

1 2 3 4 |

`x` |
a |

`breaks` |
a vector of cut points or number giving the number of intervals which x is to be cut into or an interval specification, one of "day", "week", "month", "quarter" or "year", optionally preceded by an integer and a space, or followed by "s" (pluralized). |

`labels` |
labels for the levels of the resulting category.
By default, labels are constructed from the right-hand end of the intervals
(which are included for the default value of right).
If |

`include.lowest` |
logical, indicating if an 'x[i]' equal to the lowest
(or highest, for |

`right` |
logical, indicating if the intervals should be closed on the right (and open on the left) or vice versa. |

`start.on.monday` |
logical. If |

`attr.breaks` |
logical. If |

`...` |
optional arguments passed to or from other methods. |

Convert a `mondate`

to a factor where,
in the "end-of-business-day" spirit of `mondate`

,
the levels are labeled by the last day in the period.
If `right = FALSE`

the levels are labeled by the first day in the period.

For `numeric`

breaks – which case also includes `mondate`

s –
the method calls `cut.default`

and the intervals encoded in the levels
are converted to date format using `mondate`

logic.
In the spirit of `mondate`

, the default
`right = TRUE`

ensures that the intervals are left-open/right-closed.
The default `include.lowest = TRUE`

ensures that `min(x)`

is included in the first interval.

For breaks = "days" or "weeks", the method calls cut(as.Date(x)). For breaks = "months", "quarters", and "years", numeric breaks are determined from the range of x.

If `breaks`

is preceded by an integer, call it `step`

,
then the period of the first level is determined by `min(x)`

and subsequent "day", "week", "month", "quarter", and "year" periods
are determined sequentially per
seq(min(x), max(x), by = step).

When `attr.breaks = TRUE`

, the result will have a "breaks" attribute
(attr(., "breaks")) which pairwise "cover" `x`

.
Such "breaks" are suitable be use by 'hist', for example.

In all cases, the formats of the dates representing the levels are
inherited from `displayFormat(x)`

.
Accordingly, if such resulting potential levels would be non-unique,
`cut.mondate`

resorts to the fall-back scheme of `cut.default`

,
i.e., "labels such as "Range3" will be used."

A factor is returned, unless `labels = FALSE`

which returns the integer level codes.

Dan Murphy. Many thanks to the R-development team for cut and cut.Date.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | ```
x <- mondate(0:12)
cut(x, breaks = 4)
cut(x, mondate.ymd(1999) + c(0, 3, 6, 9, 12)) # same as above
# days
x <- mondate.ymd(2013, 1, 1:7)
cut(x, breaks = "days")
# weeks
x <- mondate.ymd(2013, 1, 1:31) # days in January 2013
cut(x, breaks = "weeks") # labeled by the first 5 Sundays of 2013
cut(x, breaks = "2 weeks") # labeled by 2nd, 4th, and 6th Sundays of 2013
# months
x <- mondate.ymd(2013, 1:12, 15) # 15th day of each month in 2013
cut(x, breaks = "months") # labeled by last day of the month
cut(x, breaks = "months", right = FALSE) # labeled by first day of the month
cut(x, breaks = "2 months") # labeled by last day of the month
x1 <- mondate.ymd(2008, 6)
x2 <- mondate.ymd(2008:2011, 6)
cx1 <- cut(x1, "month", right = FALSE)
cx2 <- cut(x2, "month", right = FALSE)
stopifnot(levels(cx1)[cx1] == levels(cx2)[cx2[1]])
# quarters
x <- mondate.ymd(2013, 1:12, 15) # 15th day of each month in 2013
cut(x, "quarters") # labeled by last day of the quarter
cut(x, "quarters", right = FALSE) # labeled by first day of the quarter
cut(x, "2 quarters")
cut(x, "2 quarters", right = FALSE) # labeled by first day of the quarter
# years
m <- mondate(0:12)
cut(m, "years") # labeled by last day of the year
cut(m, "years", right = FALSE) # labeled by last day of the year
displayFormat(m) <- "%Y"
cut(m, "years") # labeled by just the year
x <- mondate.ymd(2008:2013, 6)
cut(x, "years") # 6 levels labeled by last day of the year
cut(x, "years", right = FALSE) # 6 levels labeled by first day of the year
cut(x, "3 years") # 2 levels
cut(x, "3 years", right = FALSE) # 2 levels
x1 <- mondate.ymd(2008, 12)
x2 <- mondate.ymd(2008:2011, 12)
cx1 <- cut(x1, "year", right = FALSE)
cx2 <- cut(x2, "year", right = FALSE)
stopifnot(levels(cx1)[cx1] == levels(cx2)[cx2[1]])
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.