blob: 13b0c4982e83723b0458620ba1b533c515acf33f [file] [log] [blame]
% File src/library/base/man/cut.POSIXt.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2014 R Core Team
% Distributed under GPL 2 or later
\name{cut.POSIXt}
\alias{cut.POSIXt}
\alias{cut.Date}
\title{Convert a Date or Date-Time Object to a Factor}
\description{
Method for \code{\link{cut}} applied to date-time objects.
}
\usage{
\method{cut}{POSIXt}(x, breaks, labels = NULL, start.on.monday = TRUE,
right = FALSE, \dots)
\method{cut}{Date}(x, breaks, labels = NULL, start.on.monday = TRUE,
right = FALSE, \dots)
}
\arguments{
\item{x}{an object inheriting from class \code{"POSIXt"} or \code{"Date"}.}
\item{breaks}{
a vector of cut points \emph{or} number giving the number of
intervals which \code{x} is to be cut into \emph{or} an
interval specification, one of \code{"sec"}, \code{"min"},
\code{"hour"}, \code{"day"}, \code{"DSTday"}, \code{"week"},
\code{"month"}, \code{"quarter"} or \code{"year"}, optionally
preceded by an integer and a space, or followed by \code{"s"}.
(For \code{"Date"} objects only interval specifications using
\code{"day"}, \code{"week"}, \code{"month"}, \code{"quarter"} and
\code{"year"} are allowed.)
}
\item{labels}{
labels for the levels of the resulting category. By default,
labels are constructed from the left-hand end of the intervals
(which are included for the default value of \code{right}). If
\code{labels = FALSE}, simple integer codes are returned instead
of a factor.
}
\item{start.on.monday}{logical. If \code{breaks = "weeks"}, should the
week start on Mondays or Sundays?}
\item{right, \dots}{arguments to be passed to or from other methods.}
}
\details{
Note that the default for \code{right} differs from the
\link[=cut.default]{default method}. Using \code{include.lowest =
TRUE} will include both ends of the range of dates.
Using \code{breaks = "quarter"} will create intervals of 3 calendar
months, with the intervals beginning on January 1, April 1,
July 1 or October 1 (based upon \code{min(x)}) as appropriate.
A vector of \code{breaks} will be sorted before use: \code{labels} should
correspond to the sorted vector.
}
\value{
A factor is returned, unless \code{labels = FALSE} which returns
the integer level codes.
Values which fall outside the range of \code{breaks} are coded as
\code{NA}, as are and \code{NA} values.
}
\seealso{
\code{\link{seq.POSIXt}}, \code{\link{seq.Date}}, \code{\link{cut}}
}
\examples{
## random dates in a 10-week period
cut(ISOdate(2001, 1, 1) + 70*86400*stats::runif(100), "weeks")
cut(as.Date("2001/1/1") + 70*stats::runif(100), "weeks")
# The standards all have midnight as the start of the day, but some
# people incorrectly interpret it at the end of the previous day ...
tm <- seq(as.POSIXct("2012-06-01 06:00"), by = "6 hours", length.out = 24)
aggregate(1:24, list(day = cut(tm, "days")), mean)
# and a version with midnight included in the previous day:
aggregate(1:24, list(day = cut(tm, "days", right = TRUE)), mean)
}
\keyword{manip}
\keyword{chron}