On Sep 29, 2009, at 3:08 PM, Erik Iverson wrote:

Hello,

I have

srv <- Surv(sample(1:10), sample(0:1, 10, replace = TRUE))
srv

[1]  1  10   2+  8   6+  7+  3   5+  4+  9+
srv.char <- as.character(srv)
srv.char

[1] " 1 " "10 " " 2+" " 8 " " 6+" " 7+" " 3 " " 5+" " 4+" " 9+"

Is there an inverse to as.character(srv).  That is, I would like

identical(srv, ???(srv.char)) to return TRUE, where ??? is some unknown function. I don't think it exists, but maybe I'm wrong. I suppose it would be easy enough to roll my own...

Exactly. as.character strips off all the attributes and adds "+"'s to the (numeric) times that have status=0 and " "'s (or even "-"'s) to others:

> str(as.character(srv))
 chr [1:10] " 4+" " 2 " " 8 " " 3 " " 6 " " 1 " " 5+" " 7+" "10 " ...


Whereas:
> str(srv)
 int [1:10, 1:2]  4+  2   8   3   6   1   5+  7+ 10   9+
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:2] "time" "status"
 - attr(*, "type")= chr "right"
 - attr(*, "units")= chr "Day"
 - attr(*, "time.label")= chr "sample(1:10)"
 - attr(*, "event.label")= chr "sample(0:1, 10, replace = TRUE)"

> srv[ , 1]
 [Day]
 [1]  4  2  8  3  6  1  5  7 10  9
> srv[ , 2]
 [Day]
 [1] 0 1 1 1 1 1 0 0 1 0


> methods(as.character)
Shows that there is an as.character.Surv function

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
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