R: Create a bootstrap sample of persons (as identified by...

bootLexis {Epi} | R Documentation

## Create a bootstrap sample of persons (as identified by `lex.id`) from a Lexis object

### Description

`lex.id` is the person identifier in a `Lexis` object. This is used to sample persons from a Lexis object. If a person is sampled, all records from this persons is transported to the bootstrap sample.

### Usage

    nid( Lx, ... )
    ## S3 method for class 'Lexis'
    nid( Lx, by=NULL, ... )
    bootLexis( Lx, size = NULL, by = NULL, replace=TRUE )

### Arguments

`Lx` | A `Lexis` object.
`...` | Parameters passed on to other methods.
`size` | Numeric. How many persons should be sampled from the `Lexis` object. Defaults to the number of persons in the `Lx`, or, if `by` is given, to the number of persons in each level of `by`. If `by` is given, `size` can have length `length(unique(by))`, to indicate how many are sampled from each level of `by`.
`by` | Character. Name of a variable (converted to factor) in the `Lexis` object. Bootstrap sampling is done within each level of by. Calculation of the number of persons (`lex.id`) is done within each level of `by`, and a vector returned.
`replace` | Should persons be sampled by replacement? Default is `TRUE`. Setting `replace` to `FALSE` enables selecting a random subset of persons from the Lexis object.

### Value

`bootLexis` returns a Lexis object of the same structure as the input, with persons bootstrapped. The variable `lex.id` in the resulting `Lexis` object has values 1,2,... The original values of `lex.id` from `Lx` are stored in the variable `old.id`.

`nid` counts the number of persons in a Lexis object, possibly by `by`. If `by` is given, a named vector is returned.

### Author(s)

Bendix Carstensen, http://bendixcarstensen.com.

### See Also

`Relevel.Lexis`,`subset.Lexis`

### Examples

    # A small bogus cohort
    xcoh <- data.frame( id = c("A", "B", "C"),
                     birth = c("1952-07-14", "1954-04-01", "1987-06-10"),
                     entry = c("1965-08-04", "1972-09-08", "1991-12-23"),
                      exit = c("1997-06-27", "1995-05-23", "1998-07-24"),
                      fail = c(1, 0, 1),
                       sex = c("M","F","M") )
    # Convert to calendar years
    for( i in 2:4 ) xcoh[,i] <- cal.yr(xcoh[,i])
    xcoh
    Lcoh <- Lexis( entry = list( per=entry ),
                    exit = list( per=exit, age=exit-birth ),
             exit.status = fail,
                    data = xcoh )
    Lx <- Lcoh[sample(1:3,10,replace=TRUE),]
    Lx$per <- Lx$per + runif(10,0,10)
    Lx$lex.id <- 1:10
    Lx <- splitLexis( Lx, breaks=0:10*10, "age" )
    Lx
    nid( Lx )
    nid( Lx, by="sex" )
    Lb <- bootLexis( Lx )
    head( Lb )
    nid( bootLexis( Lx, size=7 ) )
    Li <- bootLexis( Lx, by="id" ) # superfluous
    summary( Lx )
    summary( Li )
    L2 <- bootLexis( Lx, by="sex", size=c(2,5) )
    nid( L2, by="sex" )
    summary( L2 )

[Package Epi version 2.47 Index]