
Last chance! 50% off unlimited learning
Sale ends in
Lexis
to represent follow-up in
multiple states on multiple time scales.
Lexis( entry, exit, duration, entry.status = 0, exit.status = 0, id, data, merge=TRUE, states, tol=.Machine$double.eps^0.5, keep.dropped=FALSE )
data
.1:nrow(data)
data
, the variables are
taken from the environment from which Lexis
was called.TRUE
then the data
argument will be coerced to a data frame and then merged with
the resulting Lexis
object.lex.Cst
and lex.Xst
are returned as factors with
identical levels attributes equal to states
.data
be
saved as an attribute with the object for inspection?Lexis
. This is represented as a data frame
with a column for each time scale (with neaes equal to the union of
the names of entry
and exit
), and additional columns with the
following names:
C
urrent st
ate),
i.e. the state in which the follow up takes place.X
it st
ate),
i.e. that state taken up after dur
in lex.Cst
.merge=TRUE
(the default) then the Lexis
object will also contain
all variables from the data
argument.
Lexis
object is
a data frame with additional attributes that allows these multiple time
dimensions of follow-up to be managed.Separate variables for current end exit state allows representation of multistate data.
Lexis objects are named after the German demographer Wilhelm Lexis (1837-1914), who is credited with the invention of the "Lexis diagram" for representing population dynamics simultaneously by several timescales.
The Lexis
function can create a minimal Lexis
object
with only those variables required to define the follow-up history in
each row. Additional variables can be merged into the Lexis
object using the merge
method for Lexis
objects. The
latter is the default.
There are also merge
, subset
and transform
methods for
Lexis
objects. They work as the corresponding methods for data-frames
but ensures that the result is a Lexis
object.
plot.Lexis
,
splitLexis
,
cutLexis
,
merge.Lexis
,
subset.Lexis
,
cbind.Lexis
,
rbind.Lexis
,
transform.Lexis
,
summary.Lexis
,
timeScales
,
timeBand
,
entry
,
exit
,
dur
# A small bogus cohort
xcoh <- structure( list( id = c("A", "B", "C"),
birth = c("14/07/1952", "01/04/1954", "10/06/1987"),
entry = c("04/08/1965", "08/09/1972", "23/12/1991"),
exit = c("27/06/1997", "23/05/1995", "24/07/1998"),
fail = c(1, 0, 1) ),
.Names = c("id", "birth", "entry", "exit", "fail"),
row.names = c("1", "2", "3"),
class = "data.frame" )
# Convert the character dates into numerical variables (fractional years)
xcoh <- cal.yr( xcoh, format="%d/%m/%Y", wh=2:4 )
# See how it looks
xcoh
str( xcoh )
# Define as Lexis object with timescales calendar time and age
Lcoh <- Lexis( entry = list( per=entry ),
exit = list( per=exit, age=exit-birth ),
exit.status = fail,
data = xcoh )
Lcoh
# Using character states may have undesired effects:
xcoh$Fail <- c("Dead","Well","Dead")
Lexis( entry = list( per=entry ),
exit = list( per=exit, age=exit-birth ),
exit.status = Fail,
data = xcoh )
# ...unless you order the levels correctly
( xcoh$Fail <- factor( xcoh$Fail, levels=c("Well","Dead") ) )
Lexis( entry = list( per=entry ),
exit = list( per=exit, age=exit-birth ),
exit.status = Fail,
data = xcoh )
Run the code above in your browser using DataLab