Learn R Programming

Epi (version 0.6.2)

fcut: Cuts follow-up time at multiple failure times.

Description

This function cuts the follow-up time at multiple failure times allowing a person to stay at risk between and after the laset failure. It is aimed at processing of recurrent events. Failure times outside the interval (enter,exit) are ignored.

Usage

fcut( enter, exit, dof, fail = 0,
      data = data.frame(enter, exit),
      Expand = 1:nrow( data ))

Arguments

enter
Date of entry into the study. Numerical vector.
exit
Date of exit from the study. Numerical vector.
fail
Failure indicator for the exit date.
dof
Failure time(s). For multiple failures per individual, dof must be a list.
data
Dataframe of variables to be carried over to the output.
Expand
Variable identifying original records.

Value

  • A dataframe with the same variables as in data preceded by the variables:
  • ExpandIdentification of the rows from the input dataframe.
  • EnterEntry date for the interval.
  • ExitExit date for the interval.
  • FailFailure indicator for end of the current interval.
  • n.FailNumber of failures prior to the start of the current interval. Counts all failures given in the list dof, including those prior to enter.

See Also

Lexis, isec, icut, fcut1, ex1

Examples

Run this code
one <- round( runif( 15, 0, 10 ), 1 )
two <- round( runif( 15, 0, 10 ), 1 )
doe <- pmin( one, two )
dox <- pmax( one, two )
# Goofy data rows to test possibly odd behaviour
doe[1:3] <- dox[1:3] <- 8
dox[2] <- 6
dox[3] <- 7.5
# Some failure indicators
fail <- sample( 0:1, 15, replace=TRUE, prob=c(0.7,0.3) )
# Failure times in a list
dof <- sample( c(one,two), 15 )
l.dof <- list( f1=sample( c(one,two), 15 ),
               f2=sample( c(one,two), 15 ),
               f3=sample( c(one,two),15 ) )
# The same, but with events prior to entry removed
lx.dof <- lapply( l.dof, FUN=function(x){ x[x<doe] <- NA ; x } )
# So what have we got
data.frame( doe, dox, fail, l.dof, lx.dof )
# Cut follow-up at event times
fcut( doe, dox, lx.dof, fail, data=data.frame( doe, dox, lx.dof ) )

Run the code above in your browser using DataLab