40  Surv

Function survival::Surv() (Therneau 2026, v3.8.6) creates a survival object, i.e., an R object of S3 class 'Surv'. Listing 40.1 summarizes the S3 methods for the class 'Surv' in package survival,

Listing 40.1: S3 methods survival::*.Surv
Code
suppressPackageStartupMessages(library(survival))
.S3methods(class = 'Surv', all.names = TRUE) |> 
  attr(which = 'info', exact = TRUE) |>
  subset.data.frame(subset = (from %in% c('survival', 'registered S3method')))
#                    visible                from       generic  isS4
# [.Surv               FALSE registered S3method             [ FALSE
# anyDuplicated.Surv   FALSE registered S3method anyDuplicated FALSE
# as.character.Surv    FALSE registered S3method  as.character FALSE
# as.data.frame.Surv   FALSE registered S3method as.data.frame FALSE
# as.logical.Surv      FALSE registered S3method    as.logical FALSE
# as.matrix.Surv       FALSE registered S3method     as.matrix FALSE
# barplot.Surv         FALSE registered S3method       barplot FALSE
# c.Surv               FALSE registered S3method             c FALSE
# density.Surv         FALSE registered S3method       density FALSE
# duplicated.Surv      FALSE registered S3method    duplicated FALSE
# format.Surv           TRUE            survival        format FALSE
# head.Surv            FALSE registered S3method          head FALSE
# hist.Surv            FALSE registered S3method          hist FALSE
# identify.Surv        FALSE registered S3method      identify FALSE
# image.Surv           FALSE registered S3method         image FALSE
# is.na.Surv            TRUE            survival         is.na FALSE
# length.Surv          FALSE registered S3method        length FALSE
# levels.Surv          FALSE registered S3method        levels FALSE
# lines.Surv           FALSE registered S3method         lines FALSE
# Math.Surv            FALSE registered S3method          Math FALSE
# median.Surv          FALSE registered S3method        median FALSE
# names.Surv           FALSE registered S3method         names FALSE
# names<-.Surv         FALSE registered S3method       names<- FALSE
# Ops.Surv             FALSE registered S3method           Ops FALSE
# pairs.Surv           FALSE registered S3method         pairs FALSE
# plot.Surv            FALSE registered S3method          plot FALSE
# points.Surv          FALSE registered S3method        points FALSE
# print.Surv           FALSE registered S3method         print FALSE
# quantile.Surv        FALSE registered S3method      quantile FALSE
# rep_len.Surv         FALSE registered S3method       rep_len FALSE
# rep.int.Surv         FALSE registered S3method       rep.int FALSE
# rep.Surv             FALSE registered S3method           rep FALSE
# rev.Surv             FALSE registered S3method           rev FALSE
# Summary.Surv         FALSE registered S3method       Summary FALSE
# survfit.Surv         FALSE registered S3method       survfit FALSE
# t.Surv               FALSE registered S3method             t FALSE
# tail.Surv            FALSE registered S3method          tail FALSE
# text.Surv            FALSE registered S3method          text FALSE
# unique.Surv          FALSE registered S3method        unique FALSE
# xtfrm.Surv           FALSE registered S3method         xtfrm FALSE

The examples in Chapter 40 require (see the explanation of the function name conflict in Section 6.4)

library(groupedHyperframe)
search path & loadedNamespaces on author’s computer
search()
#  [1] ".GlobalEnv"                "package:groupedHyperframe" "package:stats"             "package:graphics"          "package:grDevices"         "package:utils"             "package:datasets"         
#  [8] "package:methods"           "Autoloads"                 "package:base"
loadedNamespaces() |> sort.int()
#  [1] "abind"             "base"              "cli"               "cluster"           "codetools"         "compiler"          "datasets"          "deldir"            "digest"           
# [10] "doParallel"        "dplyr"             "evaluate"          "farver"            "fastmap"           "fastmatrix"        "foreach"           "generics"          "geomtextpath"     
# [19] "GET"               "ggplot2"           "glue"              "goftest"           "graphics"          "grDevices"         "grid"              "gridExtra"         "groupedHyperframe"
# [28] "gtable"            "htmltools"         "htmlwidgets"       "iterators"         "jsonlite"          "knitr"             "lattice"           "lifecycle"         "magrittr"         
# [37] "Matrix"            "matrixStats"       "methods"           "nlme"              "otel"              "parallel"          "patchwork"         "pillar"            "pkgconfig"        
# [46] "polyclip"          "pracma"            "R6"                "RColorBrewer"      "rlang"             "rmarkdown"         "rstudioapi"        "S7"                "scales"           
# [55] "SpatialPack"       "spatstat.data"     "spatstat.explore"  "spatstat.geom"     "spatstat.random"   "spatstat.sparse"   "spatstat.univar"   "spatstat.utils"    "splines"          
# [64] "stats"             "survival"          "systemfonts"       "tensor"            "textshaping"       "tibble"            "tidyselect"        "tools"             "utils"            
# [73] "vctrs"             "viridisLite"       "xfun"              "yaml"

Table 40.1 summarizes the S3 methods for the class 'Surv' in package groupedHyperframe (v0.3.4),

Table 40.1: S3 methods groupedHyperframe::*.Surv (v0.3.4)
visible from generic isS4
summary.Surv TRUE groupedHyperframe base::summary FALSE

40.1 Summary

aml2 = survival::aml |>
  within.data.frame(expr = {
    os = survival::Surv(time = time, event = status)
    time = status = NULL
  })
aml2
#                x   os
# 1     Maintained    9
# 2     Maintained   13
# 3     Maintained  13+
# 4     Maintained   18
# ✂️ --- output truncated --- ✂️
Listing 40.2: Example: function summary.Surv()
aml2$os |> 
  summary()
#  <time-to-event> [right-censored]       [observed] 
#         "(Surv)"              "5"             "18"
Listing 40.3: Review: function summary.data.frame()
aml2 |>
  summary()
#              x                     os        
#  Maintained   :11   <time-to-event> :(Surv)  
#  Nonmaintained:12   [right-censored]:5       
#                     [observed]      :18