On Feb 22, 2012, at 7:47 PM, David Winsemius wrote:

> 
> On Feb 22, 2012, at 6:59 PM, niloo javan wrote:
> 
>> hi
>> I have a problem with  Median in Survival.
>> when I use
>> S1=survfit(Surv(Time,Status))
>> the result shows the median but I cannot use it as numeric!
>> S1$median in Null
> 
> That does not look like a formula.

Yeah, the OP is missing the '~ 1' part:

  survfit(Surv(Time, Status) ~ 1, data = ...)

> 
> Furthermore I do not think there is an element in a survfit.object named 
> 'median'. (It's certainly not documented on the help pages.)  Objects are 
> passed to their print methods and the `print.survfit` function passes off its 
> data argument first to `survmean`, then to `pfun`, then to `minmin` which 
> does the job of calculating a median, which print.survfit then prints (as a 
> side-effect using `cat`), but never stores in a returned object.
> 
> Is this is homework?



Perhaps, but the information is available from ?summary.survfit, where the 
Value section indicates that the returned object includes a 'table' component:

> summary(survfit(Surv(futime, fustat) ~ 1, data = ovarian))$table
records   n.max n.start  events  median 0.95LCL 0.95UCL 
     26      26      26      12     638     464      NA 

> RES <- summary(survfit(Surv(futime, fustat) ~ 1, data = ovarian))$table

> RES["median"]
median 
   638 

> RES["0.95LCL"]
0.95LCL 
    464 

> RES["0.95UCL"]
0.95UCL 
     NA 


This will be a matrix rather than a vector, if the analysis consists of RHS 
covariates:

> summary(survfit(Surv(futime, fustat) ~ rx, data = ovarian))$table
     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

...

> RES[, "median"]
rx=1 rx=2 
 638   NA 


If memory serves, the 'table' component was added about three years ago, as 
previously, one would have to use capture.output() on the result of explicitly 
using print.survfit() and then parse the textual results to get the median and 
CI's. It was one of those 'infelicities' in using these functions where the 
print method included code to calculate new values, rather than simply printing 
the results derived in the core function.

HTH,

Marc Schwartz

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to