Skip to content
# Start coding here...
library(survival)
install.packages("survminer")
library(survminer)
library(dplyr)

Step berikutnya:

data(ovarian)
glimpse(ovarian)
help(ovarian)

Step 3:

ovarian$rx <- factor(ovarian$rx, levels = c("1", "2"),
					labels = c("A","B"))
ovarian$resid.ds <- factor(ovarian$resid.ds, levels = c("1", "2"),
					labels = c("no","yes"))
ovarian$ecog.ps <- factor(ovarian$ecog.ps, levels = c("1", "2"),
					labels = c("good","bad"))

hist(ovarian$age)

step 4:

ovarian <- ovarian %>% mutate(age_group = ifelse(age >=50, "old", "young"))
ovarian$age_group <- factor(ovarian$age_group)

step 5:

surv_object <- Surv(time = ovarian$futime, event=ovarian$fustat)
surv_object
fit1 <- survfit(surv_object ~ rx, data = ovarian)
summary(fit1)
# fit2 <- survfit(surv_object ~ ovarian$resid.ds, data = ovarian)
# ggsurvplot(fit2, data = ovarian, pval = TRUE)

step 6 to fit Kaplan-Meier curves:

# # Corrected code
# fit1 <- survfit(Surv(ovarian$futime <- (as.numeric(as.character(ovarian$futime))), ovarian$fustat <- (as.numeric(as.character(ovarian$fustat))) ~ ovarian$rx, data = ovarian[!is.na(ovarian$futime <- (as.numeric(as.character(ovarian$futime)))) & !is.na(ovarian$fustat <-(as.numeric(as.character(ovarian$fustat)))) & !is.na(ovarian$rx),]))
# summary(fit1)

# Corrected code
ovarian$futime <- as.numeric(as.character(ovarian$futime))
ovarian$fustat <- as.numeric(as.character(ovarian$fustat))
fit1 <- survfit(Surv(ovarian$futime, ovarian$fustat) ~ ovarian$rx, data = ovarian[!is.na(ovarian$futime) & !is.na(ovarian$fustat) & !is.na(ovarian$rx),])
summary(fit1)
ggsurvplot(fit1, data = ovarian, pval = TRUE)

Fit

# Fit a Cox proportional hazards model
fit.coxph <- coxph(surv_object ~ rx + resid.ds + age_group + ecog.ps, 
                   data = ovarian)
ggforest(fit.coxph, data = ovarian)