以下为错误代码,单个运行可以出图,但循环图为空
#--------生存分析-------------------------------------
for(i in colnames(dat[,4:ncol(dat)])){
s <- summary(coxph(Surv(RFS.time,RFS)~get(i),dat))
hr= round(coef(s)[2],3)
cut <- surv_cutpoint(data = dat,time = "RFS.time",event = "RFS",variables = i,minprop = 0.1)
cat <- surv_categorize(cut)
fit <- survfit(Surv(RFS.time,RFS)~get(i),cat)
re <- surv_pvalue(fit,cat)
pdf(file = paste0('TCGA_',i,".pdf"),height = 5,width = 5.5)
ggsurvplot(fit,data=cat,
palette= c("#E31A1C","#1F78B4"),
conf.int=FALSE,size=1.3,#线条粗细
pval=paste(i,"\n","HR = ",hr,"\n","logrank test\n","p = ",round(re$pval,3)), ##这里写上你的注释
legend.labs=c("High","Low"),
legend.title="Risk",
xlab="Time(month)",
ylab="DFS",
#risk.table=TRUE,
break.time.by = 12)
#risk.table.title="Number at risk",
#risk.table.height=.3,
#risk.table.y.text = FALSE)
dev.off()
cat(paste(i,"\n","HR = ",hr,"\n","logrank test\n","p = ",round(re$pval,3),"\n","\n"))
}
解决办法
dev.off()前加 print(p)
#--------生存分析-------------------------------------
for(i in colnames(dat[,4:ncol(dat)])){
s <- summary(coxph(Surv(RFS.time,RFS)~get(i),dat))
hr= round(coef(s)[2],3)
cut <- surv_cutpoint(data = dat,time = "RFS.time",event = "RFS",variables = i,minprop = 0.1)
cat <- surv_categorize(cut)
fit <- survfit(Surv(RFS.time,RFS)~get(i),cat)
re <- surv_pvalue(fit,cat)
pdf(file = paste0('TCGA_',i,".pdf"),height = 5,width = 5.5)
p <- ggsurvplot(fit,data=cat,
palette= c("#E31A1C","#1F78B4"),
conf.int=FALSE,size=1.3,#线条粗细
pval=paste(i,"\n","HR = ",hr,"\n","logrank test\n","p = ",round(re$pval,3)), ##这里写上你的注释
legend.labs=c("High","Low"),
legend.title="Risk",
xlab="Time(month)",
ylab="DFS",
#risk.table=TRUE,
break.time.by = 12)
#risk.table.title="Number at risk",
#risk.table.height=.3,
#risk.table.y.text = FALSE)
print(p)
dev.off()
cat(paste(i,"\n","HR = ",hr,"\n","logrank test\n","p = ",round(re$pval,3),"\n","\n"))
}
网友评论