생존분석을 할 때는 time 변수, status 변수(0,1로 코딩된 변수)를 이용하여 Surv클래스의 변수를 만들고 이를 이용하여 Kaplan-Meier plot을 그릴 수 있다. 전체집단을 특정변수를 이용하여 몇개의 군으로 나누어 생존을 비교할때는 log-rank test 를 실시한다. R 에서는 다음과 같이 한다. survival package에 있는 대장암 데이타에서 치료(rx)별로 생존을 비교할떄는 다음과 같이 할 수 있다.

require(survival)
Loading required package: survival
require(plyr)
Loading required package: plyr
source("ggkm.R")
require(maxstat)
Loading required package: maxstat
data(colon)

fit=survfit(Surv(time,status)~rx,data=colon)
plot(fit)

세 군별로 색깔과 선종류를 달리하고 time mark를 없애고 범례를 표시하려면 다음과 같이 하면 된다.

plot(fit,col=1:3,lty=1:3,mark.time=FALSE)
legend("topright",legend=levels(colon$rx),col=1:3,lty=1:3)

인터넷에 공개되어 있는 ggkm함수를 이용하여 그래프를 그리면 numbers at risk table과 log-rank test의 p값을 같이 그릴 수 있다.

source("ggkm.R")
ggkm(fit,timeby=500)

문제) 그런데 나이에 따른 생존을 보려면 어떻게 할까 ? 나이는 연속형 변수로 다음과 같은 분포를 가진다.

hist(colon$age)