
Envoyé par
laplanca
Salut à tous, je veux tracer plusieurs courbe de survie donc je mets cela dans une fonction. Avant de passer par la fonction, je traçais mes courbes en utilisant ggsurvplot. Mais dans ma fonction j'utilise plot car ggsurvplot ne veut pas s'exécuter :
Erreur dans x$formula : objet de type 'symbol' non indiçableErreur dans x$formula : objet de type 'symbol' non indiçable
Savez-vous comment je pourrais utiliser ggsurvplot dans mon cas ? Je vous donne mon code dans un reprex, et deux fonctions, une avec plot et l'autre avec ggsurvplot. Juste au cas où, je travaille actuellement chez RmarkDown. Merci pour votre temps.
generate_survival_analysis <- function(df, time_col, event_col, group_col, title, palette, level) {
if (!is.data.frame(df)) {
stop("L'argument 'df' doit être un data frame.")
}
df[[group_col]] <- factor(df[[group_col]], levels = level)
surv_object <- Surv(time = df[[time_col]], event = df[[event_col]])
formula <- as.formula(paste("surv_object ~", group_col))
surv_fit <- survfit(formula, data = df)
plot(
surv_fit,
main = title,
xlab = "Temps",
ylab = "Survie",
xlim = c(0,50),
col = palette[seq_along(surv_fit$strata)],
lwd = 2,
mark.time = TRUE,
mark = 3
)
}
generate_survival_analysis <- function(df, time_col, event_col, group_col, title, palette, level) {
if (!is.data.frame(df)) {
stop("L'argument 'df' doit être un data frame.")
}
df[[group_col]] <- factor(df[[group_col]], levels = level)
surv_object <- Surv(time = df[[time_col]], event = df[[event_col]])
formula <- as.formula(paste("surv_object ~", group_col))
surv_fit <- survfit(formula, data = df)
ggsurvplot(
surv_fit,
data = df,
title = title,
risk.table = TRUE,
pval = TRUE,
palette = palette,
xlim = c(0, 50),
xlab = "Temps",
ylab = "Survie",
ggtheme = theme_minimal()
)
}
set.seed(123)
df <- data.frame(
time = c(5, 10, 15, 20, 25, 30, 35, 40, 45, 50),
event = c(1, 1, 0, 1, 1, 0, 1, 1, 0, 1),
group = c("A", "A", "A", "B", "B", "B", "B", "A", "B", "A")
)
group_levels <- c("A", "B")
group_palette <- c("blue", "red")
plot_title <- "Analyse de survie en fonction du groupe"
generate_survival_analysis(df, time_col = "time", event_col = "event", group_col = "group",
title = plot_title, palette = group_palette, level = group_levels)
Partager