2016-06-10 10 views
1

Ich habe versucht, die "Gesamt" Überlebenskurve zu der Überlebenskurve zu addieren, die für eine gegebene Kovariate erzeugt wurde. die Kurve istGesamtüberlebens-Kurve zum Überlebenskurven-Plot für eine Kovariate hinzufügen

ich das Szenario mit dem Doppelpunkt-Datensatz in das Überleben Paket in R. neu mit Überleben und ggsurv (GGally) in R. erzeugen

# Load the dataset 
    library (survival) 
    library(GGally) 
    data(colon) 

    # This generates the overall survival curve (without covariates): 
    kms_avg <- survfit(Surv(time, status)~1, data =colon) 
    g_avg <- ggsurv(kms_avg, surv.col="red", xlab="Time (days)", lty.ci=0) 
    g_avg 



    # This generates the survival curve for covariate 'rx' 
    table(colon$rx) 
    kms_rx <- survfit(Surv(time, status)~rx, data =colon) 
    g_rx <- ggsurv(kms_rx, surv.col="red", xlab="Time (days)", lty.ci=0) 
    g_rx 

Jetzt muss ich die Gesamtüberlebenslinie der hinzufügen plot g_rx. g_rx, g_avg sind ggplot2-Objekte.

# Extract the time, surv values (x,y axis values) from g_avg object 
s_avg <- summary(kms_avg) 
s_time <- s_avg$time 
s_surv <- s_avg$surv 
s <- data.frame(time=s_time, surv = s_surv) 

Jetzt versuche ich eine Zeile zu g_rx Objekt hinzufügen.

g <- g_rx + geom_point() + geom_point(data=s, color="black") 
g 
Error in eval(expr, envir, enclos) : object 'group' not found 

Hilfe geschätzt!

+0

Benötigen Sie eine x- und y-Rolle für die neuen Daten zu übertragen. Im Allgemeinen wird aes() benötigt. –

Antwort

1

Eine Möglichkeit besteht darin, alle Objekte, die Sie benötigen, manuell zu konstruieren. Das gibt dir große Kraft. Aber denken Sie daran, mit großer Macht kommt große Verantwortung. Hier ist was ich getan habe. Ich fasste angepasste Werte für das Durchschnittsmodell mit dem Modell zusammen, in dem das Überleben gegen rx modelliert wurde. Ich habe mit den Farben ein wenig herumgewürfelt, um das Durchschnittsmodell schwarz zu machen. Fühlen Sie sich frei mit Farben zu spielen, um, Linientypen, Größen ...

library (survival) 
library(GGally) 
library(ggplot2) 
data(colon) 

# This generates the overall survival curve (without covariates): 
kms_avg <- survfit(Surv(time, status)~1, data =colon) 
g_avg <- ggsurv(kms_avg, surv.col="red", xlab="Time (days)", lty.ci=0) 

# This generates the survival curve for covariate 'rx' 
kms_rx <- survfit(Surv(time, status)~rx, data =colon) 
g_rx <- ggsurv(kms_rx, surv.col="red", xlab="Time (days)", lty.ci=0) 

s_avg <- summary(kms_avg) 
s_rx <- summary(kms_rx) 

s <- data.frame(time = s_avg$time, surv = s_avg$surv, strata = "average") 
s_rx <- data.frame(time = s_rx$time, surv = s_rx$surv, strata = s_rx$strata) 

xy <- rbind(s, s_rx) 

ggplot(xy, aes(x = time, y = surv, color = strata)) + 
    theme_bw() + 
    geom_point() + 
    geom_line() 

ggplot(xy, aes(x = time, y = surv, color = strata)) + 
    theme_bw() + 
    geom_point(size = 0.5) + 
    geom_line() + 
    scale_color_manual(values = c("black", "#e41a1c", "#377eb8", "#4daf4a")) 

enter image description here

Oder Sie manuell Gruppierung definieren könnte.

g_rx + geom_point(data=s, aes(group = 1), color="black") 

enter image description here