\HeaderA{Surv}{Create a Survival Object}{Surv}
\aliasA{as.character.Surv}{Surv}{as.character.Surv}
\aliasA{as.data.frame.Surv}{Surv}{as.data.frame.Surv}
\aliasA{format.Surv}{Surv}{format.Surv}
\aliasA{is.na.Surv}{Surv}{is.na.Surv}
\aliasA{is.Surv}{Surv}{is.Surv}
\aliasA{Math.Surv}{Surv}{Math.Surv}
\aliasA{Ops.Surv}{Surv}{Ops.Surv}
\aliasA{print.Surv}{Surv}{print.Surv}
\aliasA{Summary.Surv}{Surv}{Summary.Surv}
\aliasA{[.Surv}{Surv}{[.Surv}
\keyword{survival}{Surv}
\begin{Description}\relax
Create a survival object, usually used as a response variable in a
model formula.
\end{Description}
\begin{Usage}
\begin{verbatim}
Surv(time, time2, event, type =, origin = 0)
is.Surv(x)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{time}] for right censored data, this is the follow up time.  For interval
data, the first argument is the starting time for the interval.

\item[\code{x}] any R object.

\item[\code{event}] The status indicator, normally 0=alive, 1=dead.  Other choices are
\code{TRUE}/\code{FALSE} (\code{TRUE} = death) or 1/2 (2=death). For
interval censored data, the status indicator is 0=right censored,
1=event at \code{time}, 2=left censored, 3=interval censored.
Although unusual, the event indicator can be omitted, in which case
all subjects are assumed to have an event.

\item[\code{time2}] ending time of the interval for interval censored  or counting
process data only.  Intervals are assumed to be open on the left and
closed on the right, \code{(start, end]}.  For counting process
data, \code{event} indicates whether an event occurred at the end of
the interval.

\item[\code{type}] character string specifying the type of censoring. Possible values
are \code{"right"}, \code{"left"}, \code{"counting"},
\code{"interval"}, or \code{"interval2"}.  The default is
\code{"right"} or \code{"counting"} depending on whether the
\code{time2} argument is absent or present, respectively.

\item[\code{origin}] for counting process data, the hazard function origin.  This is most
often used in conjunction with a model containing time dependent
strata in order to align the subjects properly when they cross over
from one strata to another.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Typical usages are
\begin{alltt}
Surv(time, event)
Surv(time, time2, event, type=, origin=0)
\end{alltt}

In theory it is possible to represent interval censored data without a
third column containing the explicit status.  Exact, right censored,
left censored and interval censored observation would be represented as
intervals of (a,a), (a, infinity), (-infinity,b), and (a,b) respectively;
each specifying the interval within which the event is known to have occurred.


If \code{type = "interval2"} then the representation given above is
assumed, with NA taking the place of infinity.  If `type="interval"
\code{event} must be given.  If \code{event} is \code{0}, \code{1}, or \code{2}, the relevant
information is assumed to be contained in \code{time}, the value in \code{time2}
is ignored, and the second column of the result will contain a
placeholder.


Presently, the only methods allowing interval censored data are the
parametric models computed by \code{survreg}, 
so the distinction between open and closed intervals
is unimportant.  
The distinction is important for counting process data and
the Cox model.


The function tries to distinguish between the use of 0/1 and 1/2 coding for
left and right censored data using \code{if (max(status)==2)}.
If 1/2 coding is used and all the subjects are censored, it will
guess wrong.  Use 0/1 coding in this case.
\end{Details}
\begin{Value}
An object of class \code{Surv}.  There are methods for \code{print},
\code{is.na}, and subscripting survival objects.   \code{Surv} objects
are implemented as a matrix of 2 or 3 columns.

In the case of \code{is.Surv}, a logical value \code{TRUE} if \code{x}
inherits from class \code{"Surv"}, otherwise an \code{FALSE}.
\end{Value}
\begin{SeeAlso}\relax
\code{\LinkA{coxph}{coxph}}, \code{\LinkA{survfit}{survfit}}, \code{\LinkA{survreg}{survreg}}.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
with(aml, Surv(time, status))
with(heart, Surv(start,stop,event))
\end{ExampleCode}
\end{Examples}

