Learn R Programming

mlr3proba (version 0.4.9)

TaskSurv: Survival Task

Description

This task specializes mlr3::Task and mlr3::TaskSupervised for possibly-censored survival problems. The target is comprised of survival times and an event indicator. Predefined tasks are stored in mlr3::mlr_tasks.

The task_type is set to "surv".

Arguments

Super classes

mlr3::Task -> mlr3::TaskSupervised -> TaskSurv

Active bindings

censtype

character(1) Returns the type of censoring, one of "right", "left", "counting", "interval", or "mstate".

Methods

Public methods

Method new()

Creates a new instance of this R6 class.

Usage

TaskSurv$new(
  id,
  backend,
  time = "time",
  event = "event",
  time2,
  type = c("right", "left", "interval", "counting", "interval2", "mstate"),
  label = NA_character_
)

Arguments

id

(character(1)) Identifier for the new instance.

backend

(DataBackend) Either a DataBackend, or any object which is convertible to a DataBackend with as_data_backend(). E.g., a data.frame() will be converted to a DataBackendDataTable.

time

(character(1)) Name of the column for event time if data is right censored, otherwise starting time if interval censored.

event

(character(1)) Name of the column giving the event indicator. If data is right censored then "0"/FALSE means alive (no event), "1"/TRUE means dead (event). If type is "interval" then "0" means right censored, "1" means dead (event), "2" means left censored, and "3" means interval censored. If type is "interval2" then event is ignored.

time2

(character(1)) Name of the column for ending time for interval censored data, otherwise ignored.

type

(character(1)) Name of the column giving the type of censoring. Default is 'right' censoring.

label

(character(1)) Label for the new instance.

Method truth()

True response for specified row_ids. Format depends on the task type. Defaults to all rows with role "use".

Usage

TaskSurv$truth(rows = NULL)

Arguments

rows

integer() Row indices.

Returns

numeric().

Method formula()

Creates a formula for survival models with survival::Surv on the LHS.

Usage

TaskSurv$formula(rhs = NULL)

Arguments

rhs

If NULL RHS is ., otherwise gives RHS of formula.

Returns

numeric().

Method times()

Returns the (unsorted) outcome times.

Usage

TaskSurv$times(rows = NULL)

Arguments

rows

integer() Row indices.

Returns

numeric()

Method status()

Returns the event indicator (aka censoring/survival indicator). If censtype is "right" or "left" then 1 is event and 0 is censored. If censtype is "mstate" then 0 is censored and all other values are different events. If censtype is "interval" then 0 is right-censored, 1 is event, 2 is left-censored, 3 is interval-censored. See survival::Surv.

Usage

TaskSurv$status(rows = NULL)

Arguments

rows

integer() Row indices.

Returns

integer()

Method unique_times()

Returns the sorted unique outcome times for 'right', 'left', and 'mcstate'.

Usage

TaskSurv$unique_times(rows = NULL)

Arguments

rows

integer() Row indices.

Returns

numeric()

Method unique_event_times()

Returns the sorted unique event (or failure) outcome times.

Usage

TaskSurv$unique_event_times(rows = NULL)

Arguments

rows

integer() Row indices.

Returns

numeric()

Method risk_set()

Returns the row_ids of the observations 'at risk' (not dead or censored) at time.

Usage

TaskSurv$risk_set(time = NULL)

Arguments

time

(numeric(1)) Time to return risk set for, if NULL returns all row_ids.

Returns

integer()

Method kaplan()

Calls survival::survfit() to calculate the Kaplan-Meier estimator.

Usage

TaskSurv$kaplan(strata = NULL, rows = NULL, ...)

Arguments

strata

(character()) Stratification variables to use.

rows

(integer()) Subset of row indices.

...

(any) Additional arguments passed down to survival::survfit.formula().

Returns

survival::survfit.object.

Method clone()

The objects of this class are cloneable with this method.

Usage

TaskSurv$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

See Also

Other Task: TaskDens

Examples

Run this code
# NOT RUN {
library(mlr3)
lung = survival::lung
lung$status = (lung$status == 2L)
task = TaskSurv$new("lung",
  backend = lung, time = "time",
  event = "status")

# meta data
task$target_names
task$feature_names
task$formula()

# survival data
task$truth()
task$times()
task$status()
task$unique_times()
task$unique_event_times()
task$risk_set(time = 700)
task$kaplan("sex")
# }

Run the code above in your browser using DataLab