R语言报错集合

循环作图——图为空

2021-05-03  本文已影响0人  芋圆学徒

R循环画图 - 简书 (jianshu.com)

以下为错误代码,单个运行可以出图,但循环图为空

#--------生存分析-------------------------------------
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"))
}
上一篇 下一篇

猜你喜欢

热点阅读