获取survfit对象每组的事件总数
我使用R的包生成了一个包含不同组的survfit对象 我知道我想访问每个组的事件数(即获取survfit对象每组的事件总数,r,extract,output,survival-analysis,R,Extract,Output,Survival Analysis,我使用R的包生成了一个包含不同组的survfit对象 我知道我想访问每个组的事件数(即记录-右删失的) 当我使用print(survobject)时,有一列events显示每组的事件数。但是,我没有成功地将此列提取为向量 str( Surv(heart$start, heart$stop, heart$event)[1:10, 1:3] ) #----------------------------- labelled [1:10, 1:3] 0 0 0 1 0 36 0 0 0 51 ...
记录-右删失的)
当我使用print(survobject)
时,有一列events
显示每组的事件数。但是,我没有成功地将此列提取为向量
str( Surv(heart$start, heart$stop, heart$event)[1:10, 1:3] )
#-----------------------------
labelled [1:10, 1:3] 0 0 0 1 0 36 0 0 0 51 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:3] "start" "stop" "status"
- attr(*, "units")= chr "Day"
以下是时代:
Surv(heart$start, heart$stop, heart$event)[1:10, "stop"]
# [Day]
# [1] 50 6 1 16 36 39 18 3 51 675
Surv(heart$start, heart$stop, heart$event)[1:10, "start"]
# [Day]
# [1] 0 0 0 1 0 36 0 0 0 51
因此,如果您想要与事件关联的时间,您只需:
> Surv(heart$start, heart$stop, heart$event)[ , "stop"][ Surv(heart$start, heart$stop, heart$event)[ , "status"] == 1]
[Day]
[1] 50 6 16 39 18 3 675 40 85 58 153 8 81 1387 1 308 36
[18] 43 37 28 1032 51 733 219 263 72 35 852 16 77 12 100 66 5
[35] 53 3 2 40 45 996 72 9 980 285 102 188 3 61 149 343 68
[52] 2 69 584 78 32 285 68 30 90 17 2 21 96 80 334 5 110
[69] 207 186 340 165 16 21 6
或者只需对事件标记求和即可获得数字:
sum( Surv(heart$start, heart$stop, heart$event)[ , "status"] == 1)
[1] 75
并通过潜在协变量将其制成表格:
> with(lung, table(Surv(time, status)[, "status"], ph.ecog ))
ph.ecog
0 1 2 3
0 26 31 6 0
1 37 82 44 1
以下是时代:
Surv(heart$start, heart$stop, heart$event)[1:10, "stop"]
# [Day]
# [1] 50 6 1 16 36 39 18 3 51 675
Surv(heart$start, heart$stop, heart$event)[1:10, "start"]
# [Day]
# [1] 0 0 0 1 0 36 0 0 0 51
因此,如果您想要与事件关联的时间,您只需:
> Surv(heart$start, heart$stop, heart$event)[ , "stop"][ Surv(heart$start, heart$stop, heart$event)[ , "status"] == 1]
[Day]
[1] 50 6 16 39 18 3 675 40 85 58 153 8 81 1387 1 308 36
[18] 43 37 28 1032 51 733 219 263 72 35 852 16 77 12 100 66 5
[35] 53 3 2 40 45 996 72 9 980 285 102 188 3 61 149 343 68
[52] 2 69 584 78 32 285 68 30 90 17 2 21 96 80 334 5 110
[69] 207 186 340 165 16 21 6
或者只需对事件标记求和即可获得数字:
sum( Surv(heart$start, heart$stop, heart$event)[ , "status"] == 1)
[1] 75
并通过潜在协变量将其制成表格:
> with(lung, table(Surv(time, status)[, "status"], ph.ecog ))
ph.ecog
0 1 2 3
0 26 31 6 0
1 37 82 44 1
例如,使用的数据来自库survival
帮助页面。在survfit
对象上使用函数print()
打印所有summary.survfit()
对象的一部分
library(survival)
print(survfit( Surv(futime, fustat)~rx, data=ovarian))
Call: survfit(formula = Surv(futime, fustat) ~ rx, data = ovarian)
records n.max n.start events median 0.95LCL 0.95UCL
rx=1 13 13 13 7 638 268 NA
rx=2 13 13 13 5 NA 475 NA
如果我们保存summary()
对象并查看它的结构,就会有一个元素表
gg<-summary(survfit( Surv(futime, fustat)~rx, data=ovarian))
str(gg)
List of 15
$ n : int [1:2] 13 13
$ time : num [1:12] 59 115 156 268 329 431 638 353 365 464 ...
$ n.risk : num [1:12] 13 12 11 10 9 8 5 13 12 9 ...
$ n.event : num [1:12] 1 1 1 1 1 1 1 1 1 1 ...
$ n.censor : num [1:12] 0 0 0 0 0 0 0 0 0 0 ...
$ surv : num [1:12] 0.923 0.846 0.769 0.692 0.615 ...
$ type : chr "right"
$ strata : Factor w/ 2 levels "rx=1","rx=2": 1 1 1 1 1 1 1 2 2 2 ...
$ std.err : num [1:12] 0.0739 0.1001 0.1169 0.128 0.1349 ...
$ upper : num [1:12] 1 1 1 0.995 0.946 ...
$ lower : num [1:12] 0.789 0.671 0.571 0.482 0.4 ...
$ conf.type: chr "log"
$ conf.int : num 0.95
$ call : language survfit(formula = Surv(futime, fustat) ~ rx, data = ovarian)
$ table : num [1:2, 1:7] 13 13 13 13 13 13 7 5 638 NA ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:2] "rx=1" "rx=2"
.. ..$ : chr [1:7] "records" "n.max" "n.start" "events" ...
- attr(*, "class")= chr "summary.survfit"
例如,使用的数据来自库survival
帮助页面。在survfit
对象上使用函数print()
打印所有summary.survfit()
对象的一部分
library(survival)
print(survfit( Surv(futime, fustat)~rx, data=ovarian))
Call: survfit(formula = Surv(futime, fustat) ~ rx, data = ovarian)
records n.max n.start events median 0.95LCL 0.95UCL
rx=1 13 13 13 7 638 268 NA
rx=2 13 13 13 5 NA 475 NA
如果我们保存summary()
对象并查看它的结构,就会有一个元素表
gg<-summary(survfit( Surv(futime, fustat)~rx, data=ovarian))
str(gg)
List of 15
$ n : int [1:2] 13 13
$ time : num [1:12] 59 115 156 268 329 431 638 353 365 464 ...
$ n.risk : num [1:12] 13 12 11 10 9 8 5 13 12 9 ...
$ n.event : num [1:12] 1 1 1 1 1 1 1 1 1 1 ...
$ n.censor : num [1:12] 0 0 0 0 0 0 0 0 0 0 ...
$ surv : num [1:12] 0.923 0.846 0.769 0.692 0.615 ...
$ type : chr "right"
$ strata : Factor w/ 2 levels "rx=1","rx=2": 1 1 1 1 1 1 1 2 2 2 ...
$ std.err : num [1:12] 0.0739 0.1001 0.1169 0.128 0.1349 ...
$ upper : num [1:12] 1 1 1 0.995 0.946 ...
$ lower : num [1:12] 0.789 0.671 0.571 0.482 0.4 ...
$ conf.type: chr "log"
$ conf.int : num 0.95
$ call : language survfit(formula = Surv(futime, fustat) ~ rx, data = ovarian)
$ table : num [1:2, 1:7] 13 13 13 13 13 13 7 5 638 NA ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:2] "rx=1" "rx=2"
.. ..$ : chr [1:7] "records" "n.max" "n.start" "events" ...
- attr(*, "class")= chr "summary.survfit"
别介意。不管怎么说,他的方法比我的高。别介意。不管怎么说,他的方法比我的高。