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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。