У меня есть список именованных фреймов данных:
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)
Я хочу запустить сурфит для каждого фрейма данных, а затем сгенерировать несколько графиков (я поместил здесь только один для простоты), каждый график с соответствующим заголовком. Я думаю, что Map - лучший способ сделать это, поэтому:
titles<- names(survlist)
Затем я определяю функцию, которую хочу использовать для анализа выживаемости и построения графиков:
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)
}
И попробуй применить:
Map(survival.function, survlist, titles)
Но идея не сработала:
«Ошибка в eval (fit $ call $ data): объект 'survivaldata' не найден»
Есть ли способ правильно назначить объекты функциям выживания? Спасибо!.