ich eine Liste mit dem Namen Datenrahmen haben:R - gelten survfit auf eine Liste und Grundstück mit entsprechenden Namen
library(survival)
library(survminer)
surv.days<- runif(n = 50, min = 0, max = 500)
censor<- sample(c(0,1), 50, replace=TRUE)
survdata<- data.frame(surv.days, censor)
survlist<- list(survdata, survdata)
names(survlist)<- c("name1", "name2")
rm(survdata, censor, surv.days)
Ich möchte ein survfit auf jedem Datenrahmen laufen und dann mehrere Plots erzeugen (Ich habe hier nur eine der Einfachheit halber), jede Handlung mit dem entsprechenden Titel. Ich denke Karte ist der Weg, es zu tun, so:
titles<- names(survlist)
Dann definiere ich die Funktion, die ich verwenden möchte, um das Überleben Analyse und Plots laufen:
survival.function<- function(survivaldata, datanames){
sfit<- survfit(Surv(surv.days, censor)~1, data=survivaldata)
ggsurvplot(sfit, conf.int=TRUE, risk.table=TRUE,
surv.median.line = "v",
title=datanames,
risk.table.height=.25)
}
Und versuchen Sie es anwenden:
Map(survival.function, survlist, titles)
Aber die Idee hat nicht funktioniert:
"Fehler in eval (fit $ data $ call): Objekt 'survivaldata' nicht gefunden"
Gibt es eine Möglichkeit, die Objekte den Überlebensfunktionen richtig zuzuordnen? Vielen Dank!
Dies funktioniert nicht mehr, wenn Sie das Objekt "surv.days" aus dem globalen env entfernen. (etwas, das ich im ursprünglichen Beispiel hätte tun sollen), also habe ich den ursprünglichen Beitrag editiert, indem ich 'rm (survdata, censor, surv.days)' –
hinzugefügt habe. Ich sehe das als weiteren Beweis, dass die ggsurvplot-Funktion nicht richtig extrahiert werden kann und behandeln die Interna eines Überlebensobjekts. Der Betreuer sollte befragt werden. –