美文网首页R语言报错集合
循环作图——图为空

循环作图——图为空

作者: 芋圆学徒 | 来源:发表于2021-05-03 16:55 被阅读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"))
}

相关文章

网友评论

    本文标题:循环作图——图为空

    本文链接:https://www.haomeiwen.com/subject/kzfirltx.html