library(survival)
library(survminer)
## Loading required package: ggplot2
## Loading required package: ggpubr
## 
## Attaching package: 'survminer'
## The following object is masked from 'package:survival':
## 
##     myeloma

Create data for Group 1 (Treatment)

group1 <- c(6, 6, 6, 7, 10, 13, 16, 22, 23,
            6, 9, 10, 11, 17, 19, 20,
            25, 32, 32, 34, 35)
group1_censor <- c(rep(0, 9), rep(1, 12))  # 0 = uncensored, 1 = censored

Create data for Group 2 (Placebo)

group2 <- c(1, 1, 2, 2, 3, 4, 4, 5, 5,
            8, 8, 8, 8, 11, 11, 12, 12,
            15, 17, 22, 23)
group2_censor <- c(rep(0, 17), rep(1, 4))  # 0 = uncensored, 1 = censored

Combine data into a dataframe

time <- c(group1, group2)
status <- c(1 - group1_censor, 1 - group2_censor)  # Convert censoring: 1 = event occurred, 0 = censored
group <- c(rep("Group 1", length(group1)), rep("Group 2", length(group2)))
data <- data.frame(time = time, status = status, group = group)

Kaplan-Meier survival analysis

surv_object <- Surv(time = data$time, event = data$status)
km_fit <- survfit(surv_object ~ group, data = data)

Plot Kaplan-Meier curves

ggsurvplot(
  km_fit,
  data = data,
  pval = TRUE,
  conf.int = TRUE,
  legend.title = "Groups",
  legend.labs = c("Treatment (Group 1)", "Placebo (Group 2)"),
  xlab = "Time (weeks)",
  ylab = "Survival Probability",
  ggtheme = theme_minimal()
)

##plot Kaplan Meier curves with pvalue

ggsurvplot(
  km_fit,
  data = data,
  pval = FALSE,  # Explicitly turn off the p-value
  conf.int = TRUE,
  legend.title = "Groups",
  legend.labs = c("Treatment (Group 1)", "Placebo (Group 2)"),
  xlab = "Time (weeks)",
  ylab = "Survival Probability",
  ggtheme = theme_minimal()
)

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.