Surv
位于 survival
包(package)。 说明
创建一个生存对象,通常用作模型公式中的响应变量。参数匹配对于此函数来说是特殊的,请参阅下面的详细信息。
用法
Surv(time, time2, event,
type=c('right', 'left', 'interval', 'counting', 'interval2', 'mstate'),
origin=0)
is.Surv(x)
参数
time |
对于右删失数据,这是后续时间。对于间隔数据,第一个参数是间隔的开始时间。 |
event |
状态指示器,通常0=活着,1=死。其他选择是 |
time2 |
仅用于间隔删失或计数过程数据的间隔结束时间。假定间隔在左侧开放,在右侧封闭, |
type |
指定审查类型的字符串。可能的值为 |
origin |
用于计算过程数据的危险函数原点。此选项旨在与包含时间相关层的模型结合使用,以便在受试者从一个层跨越到另一个层时正确对齐受试者,但它很少被证明有用。 |
x |
任何 R 对象。 |
细节
当 type
参数缺失时,代码将采用基于以下规则的类型:
-
如果有两个未命名参数,它们将按顺序匹配
time
和event
。如果存在三个未命名参数,则它们匹配time
、time2
和event
。 -
如果事件变量是一个因子,则假定类型为
mstate
。否则,如果没有time2
参数,则键入right
;如果有,则键入counting
。
因此,type
参数通常会被省略。
当生存类型为"mstate"时,状态变量将被视为一个因子。该因子的第一级用于表示审查,其余级表示到给定状态的过渡。 (如果状态变量是一个因子,则假定为mstate
。)
区间删失数据可以用两种方式表示。第一次使用 type = "interval"
和上面显示的代码。在该用法中,除非 event=3,否则 time2
参数的值将被忽略。第二种方法是将每个观察视为一个时间间隔,其中(-无穷大,t2)表示左删失,(t1,无穷大)表示右删失,(t,t)表示精确,(t1,t2)表示间隔。这是用于 type = Interval2 的方法。无限值可以用实际无穷大 (Inf) 或 NA 表示。事实证明,第二种形式更有用。
目前,唯一允许区间删失数据的方法是由 survreg
计算的参数模型和由 survfit
计算的生存曲线;对于这两种情况,开区间和闭区间之间的区别并不重要。这种区别对于计算过程数据和 Cox 模型很重要。
该函数尝试通过条件 if (max(status)==2)
区分对审查数据使用 0/1 和 1/2 编码。如果使用1/2编码并且对所有受试者进行审查,它就会猜测错误。在任何有问题的情况下,使用逻辑编码会更安全,例如,Surv(time, status==3)
表示 '3' 是事件的代码。对于多状态生存,状态变量将是一个因子,假设其第一级对应于审查。
Surv 对象可以作为向量下标,例如x[1:3]
使用单个下标,在这种情况下,drop
参数将被忽略,结果将是一个生存对象;或使用两个下标作为矩阵。如果缺少第二个下标并且 drop=F
(默认),则下标的结果将是 Surv 对象,例如 x[1:3,,drop=F]
,否则结果将是一个矩阵(或向量),符合默认行为用于下标矩阵。
值
类 Surv
的对象。有 print
、 is.na
和下标生存对象的方法。 Surv
对象被实现为具有更多属性的 2 或 3 列矩阵。其中包括多状态对象的状态类型(左审查、右审查、计数过程等)和标签。输入参数的任何属性也保留在 inputAttributes
中。这对于在数据项(例如标签)上附加了更多信息的其他包可能很有用;然而,生存包中的例程都没有使用这些值。
对于 is.Surv
,如果 x
继承自类 "Surv"
,则为逻辑值 TRUE
,否则为 FALSE
。
注意
使用 1/2 编码表示状态是一个有趣的历史文物。对于打孔卡上包含的数据,IBM 360 Fortran 将空白视为零,这导致 Mayo Clinic 生物统计学部分制定了一项政策,永远不要使用 "0" 作为数据值,因为人们无法将其与缺失值区分开。政策变成了习惯,就像经常发生的那样,在生/死的打孔卡消亡之后,对生/死的 1/2 编码的使用仍然持续了很长一段时间。在编写 Surv
时,许多 Mayo 数据集仍然使用这种过时的约定,例如包中找到的 lung
数据集。
例子
with(aml, Surv(time, status))
survfit(Surv(time, status) ~ ph.ecog, data=lung)
Surv(heart$start, heart$stop, heart$event)
也可以看看
相关用法
- R Surv2data 将数据从 timecourse 转换为 (time1,time2) 样式
- R Surv2 创建生存对象
- R Surv-methods Surv 对象的方法
- R hoel 小鼠癌症数据
- R survcondense 缩短 (time1, time2) 生存数据集
- R myeloid 急性粒细胞白血病
- R tobin 托宾的托比特数据
- R pseudo 生存的伪值。
- R levels.Surv 返回多状态 Surv 对象的状态
- R rats Mantel 等人的大鼠治疗数据
- R diabetic 糖尿病视网膜病变
- R pbc 梅奥诊所原发性胆汁性胆管炎数据
- R plot.survfit survfit 对象的绘图方法
- R kidney 肾导管数据
- R stanford2 更多斯坦福心脏移植数据
- R print.aareg 打印 aareg 对象
- R pyears 人年
- R residuals.survreg 计算“survreg”对象的残差
- R cgd0 慢性肉芽肿病数据
- R mgus2 单克隆丙种球蛋白病数据
- R model.frame.coxph coxph 对象的 Model.frame 方法
- R brier 计算 Cox 模型的 Brier 分数
- R nsk 以结高度为基础的自然样条。
- R survSplit 在指定时间分割生存数据集
- R mgus 单克隆丙种球蛋白病数据
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Create a Survival Object。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。