Skip to contents

[Experimental]

The aim of Surv_CNSR() is to map the inconsistency in convention between the survival package and CDISC ADaM ADTTE data model.

The function creates a survival object (e.g. survival::Surv()) that uses CDISC ADaM ADTTE coding conventions and converts the arguments to the status/event variable convention used in the survival package.

The AVAL and CNSR arguments are passed to survival::Surv(time = AVAL, event = 1 - CNSR, type = "right", origin = 0).

Usage

Surv_CNSR(AVAL, CNSR)

Arguments

AVAL

The follow-up time. The follow-up time is assumed to originate from zero. When no argument is passed, the default value is a column/vector named AVAL.

CNSR

The censoring indicator where 1=censored and 0=death/event. When no argument is passed, the default value is a column/vector named CNSR.

Value

Object of class 'Surv'

Details

The Surv_CNSR() function creates a survival object utilizing the expected data structure in the CDISC ADaM ADTTE data model, mapping the CDISC ADaM ADTTE coding conventions with the expected status/event variable convention used in the survival package---specifically, the coding convention used for the status/event indicator. The survival package expects the status/event indicator in the following format: 0=alive, 1=dead. Other accepted choices are TRUE/FALSE (TRUE = death) or 1/2 (2=death). A final but risky option is to omit the indicator variable, in which case all subjects are assumed to have an event.

The CDISC ADaM ADTTE data model adopts a different coding convention for the event/status indicator. Using this convention, the event/status variable is named 'CNSR' and uses the following coding: censor = 1, status/event = 0.

Examples

# Use the `Surv_CNSR()` function with visR functions
adtte %>%
  visR::estimate_KM(formula = visR::Surv_CNSR() ~ SEX)
#> Warning: `estimate_KM()` was deprecated in visR 0.4.0.
#>  Please use `ggsurvfit::ggsurvfit()` instead.
#> Call: ~survival::survfit(formula = visR::Surv_CNSR() ~ SEX, data = data)
#> 
#>         n events median 0.95LCL 0.95UCL
#> SEX=F 143     80     64      47      96
#> SEX=M 111     72     41      30      57

# Use the `Surv_CNSR()` function with functions from other packages as well
survival::survfit(visR::Surv_CNSR() ~ SEX, data = adtte)
#> Call: survfit(formula = visR::Surv_CNSR() ~ SEX, data = adtte)
#> 
#>         n events median 0.95LCL 0.95UCL
#> SEX=F 143     80     64      47      96
#> SEX=M 111     72     41      30      57
survival::survreg(visR::Surv_CNSR() ~ SEX + AGE, data = adtte) %>%
  broom::tidy()
#> # A tibble: 4 × 5
#>   term        estimate std.error statistic    p.value
#>   <chr>          <dbl>     <dbl>     <dbl>      <dbl>
#> 1 (Intercept)   3.97      0.993      4.00  0.0000645 
#> 2 SEXM         -0.412     0.226     -1.82  0.0689    
#> 3 AGE           0.0131    0.0131     0.997 0.319     
#> 4 Log(scale)    0.326     0.0676     4.83  0.00000139