各位大佬,怎么预测计算患者列线图 的得分。
‘library(rms)
library(foreign)
library(survival)
#修改自己的工作目录
setwd("C:\\Users\\zjsty\\Desktop\\1\\1")
#画OS列线图图
pbc<-read.table("2066OS.txt",header=T,sep="\t")
#设置变量名称
pbc$Age<-factor(pbc$Age,labels=c("<66","66-77",">77"))
pbc$Surg<-factor(pbc$Surg,labels=c("1","2","3"))
pbc$Marital<-factor(pbc$Marital,labels=c("1","2","3","4"))
pbc$Chemotheray<-factor(pbc$Chemotherapy,labels=c("Yes","No"))
pbc$T<-factor(pbc$T,labels=c("Tis","T1","T2","T3","T4"))
pbc$N<-factor(pbc$N,labels=c("N0","N1","N2"))
pbc$M<-factor(pbc$M,labels=c("M0","M1"))
#将数据打包好
dd<-datadist(pbc)
options(datadist="dd")
#计算生存时间基本数据
summary(pbc$Survival)
coxpbc<-cph(formula = Surv(Survival,OS) ~ Age + Surg + Marital + Chemotherapy + T + N+ M,
data=pbc,x=T,y=T,surv = T,na.action=na.delete)
print(coxpbc)
recore=predict(coxpbc,data=pbc)
surv<-Survival(coxpbc)
surv3<-function(x)surv(1123,lp=x)#3年生存
surv5<-function(x)surv(1125,lp=x)#5年生存
x<-nomogram(coxpbc,fun = list(surv3,surv5),lp=T,
funlabel = c('3-year OS Probability','5-year OS Probability'),
maxscale = 100,fun.at = c(0.95,0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1))
pdf("2066nomogramOS.pdf",width = 12,height = 10)
plot(x, lplabel="Linear Predictor",
xfrac=.35,varname.label=TRUE, varname.label.sep="=", ia.space=.2,
tck=NA, tcl=-0.20, lmgp=0.3,
points.label='Points', total.points.label='Total Points',
total.sep.page=FALSE,
cap.labels=FALSE,cex.var = 1.6,cex.axis = 1.05,lwd=5,
label.every = 1,col.grid = gray(c(0.8, 0.95)))
dev.off()’