Juan Andres Hernandez
2014-Oct-07 13:40 UTC
[R] How to extract table results from survival summary object
Hi. I need to extract the "matrix" or "data.frame" results from a survival object. library(survival) data(lung) mod=with(lung, survfit(Surv(time,death)~ 1)) res=summary(mod) res show in consola the "matrix" I am looking for, but I can't find the way to save or assign this table to an object. Anyone knows how to solve it. Thank's in advance Juan A. Hern?ndez [[alternative HTML version deleted]]
Rianna Morgan
2014-Oct-07 13:50 UTC
[R] How to extract table results from survival summary object
Hi Juan, If you do: summaryMatrix <- res$surv that should get the last matrix in the summary call assigned to summaryMatrix. If you're not looking for the 'surv' matrix, entering: res$ into the console and tab-completing should allow you to select the element of the summary object that you'd like. Hope this helps, -- Rianna Morgan, MA rmorgan at trystero.is On Tue, Oct 7, 2014, at 06:40 AM, Juan Andres Hernandez wrote:> Hi. I need to extract the "matrix" or "data.frame" results from a > survival > object. > > library(survival) > data(lung) > mod=with(lung, survfit(Surv(time,death)~ 1)) > res=summary(mod) > > res show in consola the "matrix" I am looking for, but I can't find the > way > to save or assign this table to an object. Anyone knows how to solve it. > Thank's in advance > > Juan A. Hern?ndez > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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.
David L Carlson
2014-Oct-07 15:43 UTC
[R] How to extract table results from survival summary object
This will create a data.frame containing the results of the summary(mod) object. You can find out what that is using the command ?summary.survfit. You have an error in your example since death is not a variable in lung:> library(survival) > data(lung) > mod <- with(lung, survfit(Surv(time, status)~ 1)) > res <- summary(mod) > str(res)List of 14 $ n : int 228 $ time : num [1:139] 5 11 12 13 15 26 30 31 53 54 ... $ n.risk : num [1:139] 228 227 224 223 221 220 219 218 217 215 ... $ n.event : num [1:139] 1 3 1 2 1 1 1 1 2 1 ... $ n.censor : num [1:139] 0 0 0 0 0 0 0 0 0 0 ... $ surv : num [1:139] 0.996 0.982 0.978 0.969 0.965 ... $ type : chr "right" $ std.err : num [1:139] 0.00438 0.00869 0.0097 0.01142 0.01219 ... $ upper : num [1:139] 1 1 0.997 0.992 0.989 ... $ lower : num [1:139] 0.987 0.966 0.959 0.947 0.941 ... $ conf.type: chr "log" $ conf.int : num 0.95 $ call : language survfit(formula = Surv(time, status) ~ 1) $ table : Named num [1:7] 228 228 228 165 310 285 363 ..- attr(*, "names")= chr [1:7] "records" "n.max" "n.start" "events" ... - attr(*, "class")= chr "summary.survfit"> # Extract the columns you want > cols <- lapply(c(2:6, 8:10) , function(x) res[x]) > # Combine the columns into a data frame > tbl <- do.call(data.frame, cols) > str(tbl)'data.frame': 139 obs. of 8 variables: $ time : num 5 11 12 13 15 26 30 31 53 54 ... $ n.risk : num 228 227 224 223 221 220 219 218 217 215 ... $ n.event : num 1 3 1 2 1 1 1 1 2 1 ... $ n.censor: num 0 0 0 0 0 0 0 0 0 0 ... $ surv : num 0.996 0.982 0.978 0.969 0.965 ... $ std.err : num 0.00438 0.00869 0.0097 0.01142 0.01219 ... $ upper : num 1 1 0.997 0.992 0.989 ... $ lower : num 0.987 0.966 0.959 0.947 0.941 ... Since res is a list containing the columns you want plus other information, we need to extract the needed columns from res and then combine those columns into a data.frame. ------------------------------------- David L Carlson Department of Anthropology Texas A&M University College Station, TX 77840-4352 -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Juan Andres Hernandez Sent: Tuesday, October 7, 2014 8:41 AM To: r-help at r-project.org Subject: [R] How to extract table results from survival summary object Hi. I need to extract the "matrix" or "data.frame" results from a survival object. library(survival) data(lung) mod=with(lung, survfit(Surv(time,death)~ 1)) res=summary(mod) res show in consola the "matrix" I am looking for, but I can't find the way to save or assign this table to an object. Anyone knows how to solve it. Thank's in advance Juan A. Hern?ndez [[alternative HTML version deleted]] ______________________________________________ R-help at 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.