On Mon, 13 Jul 2009, Charles C. Berry wrote:

On Mon, 13 Jul 2009, Heinz Tuechler wrote:

 At 20:18 13.07.2009, Charles C. Berry wrote:
>  On Mon, 13 Jul 2009, Heinz Tuechler wrote:
> > > Dear All, > > > > since years I am struggling with Surv objects in data.frames. The > > following seems to have to do with it. > > See below the modified example from the help page of survSplit. The > > original works, as expected. If, however, a Surv object is added to > > the data.frame, each record gets doubled. > > Is there some solution other than avoiding Surv objects in > > data.frames? > > I think you can modify survSplit so that it will properly handle Surv > objects. > > Change this line: > > newdata <- lapply(data, rep, ntimes + 1) > > to this: > > newdata <- lapply(data,
>                   function(x) {
>                           x <- as.matrix(x)
>                           x[rep(1:nrow(x), ntimes + 1),]
>                                   })
> > or something similar that results Surv objects being rep()'ed rowwise > rather than elementwise and returned as objects of the right dimension > (rather than as a vector). > > Caveat: This works in the example you give, but I've not tested this > extensively. > > HTH, > > Chuck > > > > > > > Thanks,
> >  Heinz
> > > > > > require(survival) > > > > ## from the help page
> >  aml3<-survSplit(aml,cut=c(5,10,50),end="time",start="start",
> >         event="status",episode="i")
> > > > summary(aml)
> >  summary(aml3)
> > > > coxph(Surv(time,status)~x,data=aml)
> >  ## the same
> >  coxph(Surv(start,time,status)~x,data=aml3)
> > > > ## added to show doubling of records
> >  aml.so <- aml
> >  aml.so$surv.object <- with(aml, Surv(time, status))
> > > > aml3.so <- survSplit(aml.so ,cut=c(5,10,50),end="time",start="start",
> >                       event="status",episode="i")
> >  summary(aml3.so)
> > > > sessionInfo('survival')
> >  R version 2.9.1 Patched (2009-07-07 r48910)
> >  i386-pc-mingw32
> > > > locale:
> >  
LC_COLLATE=German_Switzerland.1252;LC_CTYPE=German_Switzerland.1252;LC_MONETARY=German_Switzerland.1252;LC_NUMERIC=C;LC_TIME=German_Switzerland.1252
> > > > attached base packages:
> >  character(0)
> > > > other attached packages:
> >  [1] survival_2.35-4
> > > > loaded via a namespace (and not attached):
> >  [1] base_2.9.1      graphics_2.9.1  grDevices_2.9.1 methods_2.9.1
> >  [5] splines_2.9.1   stats_2.9.1     utils_2.9.1
> > > > ______________________________________________
> >  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.
> > Charles C. Berry (858) 534-2098 > Dept of Family/Preventive > Medicine
>  E mailto:cbe...@tajo.ucsd.edu               UC San Diego
> http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego > 92093-0901

 Thank you Chuck,

 it seems to work also with my real data, but I noted that in the example
 aml$x, which is a factor, gets converted to character in aml3.so. Maybe,
 if I find the time, I should look at as.data.frame.matrix and rbind for
 Surv objects.



Heinz,

Try

    newdata <- lapply(data, function(x) {
        if (!is.matrix(x)) {
                rep(x,ntimes +1 )
         } else {

Oops. The next line is unneeded:

                 x <- as.matrix(x)


Chuck


                 x[rep(1:nrow(x), ntimes + 1),]}})


HTH,

Chuck

 Thanks again,
 Heinz

 ______________________________________________
 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.


Charles C. Berry                            (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cbe...@tajo.ucsd.edu               UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

______________________________________________
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.


Charles C. Berry                            (858) 534-2098
                                            Dept of Family/Preventive Medicine
E mailto:cbe...@tajo.ucsd.edu               UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

______________________________________________
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