R: Combining a Lexis objects with data frames or other Lexis...

cbind.Lexis {Epi} | R Documentation

## Combining a Lexis objects with data frames or other Lexis objects

### Description

A Lexis object may be combined side-by-side with data frames. Or several Lexis objects may stacked, possibly increasing the number of states and time scales.

### Usage

    ## S3 method for class 'Lexis'
    cbind(...)
    ## S3 method for class 'Lexis'
    rbind(...)

### Arguments

`...` | For `cbind` a sequence of data frames or vectors of which exactly one has class `Lexis`. For `rbind` a sequence of Lexis objects, supposedly representing follow-up in the same population.

### Details

Arguments to `rbind.Lexis` must all be `Lexis` objects; except for possible NULL objects. The timescales in the resulting object will be the union of all timescales present in all arguments. Values of timescales not present in a contributing Lexis object will be set to `NA`. The `breaks` for a given time scale will be `NULL` if the `breaks` of the same time scale from two contributing Lexis objects are different.

The arguments to `cbind.Lexis` must consist of at most one Lexis object, so the method is intended for amending a Lexis object with extra columns without losing the Lexis-specific attributes.

### Value

A `Lexis` object. `rbind` renders a `Lexis` object with timescales equal to the union of timescales in the arguments supplied. Values of a given timescale are set to `NA` for rows corresponding to supplied objects. `cbind` basically just adds columns to an existing Lexis object.

### Author(s)

Bendix Carstensen, http://BendixCarstensen.com

### See Also

`subset.Lexis`

### Examples

    # 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
    cbind( Lcoh, zz=3:5 )

    # Lexis object wit time since entry time scale
    Dcoh <- Lexis( entry = list( per=entry, tfe=0 ),
                    exit = list( per=exit ),
             exit.status = fail,
                    data = xcoh )
    # A bit meningless to combie these two, really...
    rbind( Dcoh, Lcoh )

    # Split different places
    sL <- splitLexis( Lcoh, time.scale="age", breaks=0:20*5 )
    sD <- splitLexis( Dcoh, time.scale="tfe", breaks=0:50*2 )
    sDL <- rbind( sD, sL )

[Package Epi version 2.40 Index]