library(survival)
library(survminer)
library(dplyr)
<- lung |>
df transmute(time,
# censoring status 1=censored, 2=dead
status, Age = age,
Sex = factor(sex, labels = c("Male", "Female")),
ECOG = factor(ph.ecog),
`Meal Cal` = as.numeric(meal.cal))
<- c("ECOG", "Sex")
vars <- function(df, vars, time, status) {
surv_plot_func
<- lapply(vars, \(x,...){
results_list # Creating a formula as a string
<<- paste0("Surv(", time, ", ", status,") ~ ",x)
form <- survfit(as.formula(form), data=df)
fit
# Plot the Kaplan-Meier curve using ggsurvplot
<- ggsurvplot(fit, pval = TRUE, conf.int = TRUE,
ggsurv risk.table = TRUE, legend.title = "",
surv.median.line = "hv", xlab = "Time", ylab = "Survival Probability")
# Return the fit and ggsurv as a list
list(fit = fit, ggsurv = ggsurv)
|> setNames(vars)
})
# Return the list of results
return(results_list)
}<- surv_plot_func(df, vars, "time", "status") res_list
특정 범주 변수에 따른 생존률 시각화하는 사용자지정 함수를 만들어보았습니다. survival
의 lung
데이터 이용하여 예시를 보여드리겠습니다.
ggsurvplot 의 코드 문제인지 form을 <-
로 선언하면 에러메시지가 발생합니다. 그래서 <<-
을 통해 권역 객체로 선언하였습니다.