You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R使用for循环保存RTCGA包生成的多幅图时PDF首页为空如何解决

R语言RTCGA包批量保存生存曲线PDF出现空白首页的解决方法

问题原因

kmTCGA()为RTCGA包封装的生存曲线绘图函数,返回ggplot类对象,函数内部默认带有隐式绘图逻辑。打开PDF图形设备后,隐式绘图会触发设备生成空白首页,后续显式调用print()输出的绘图会从第二页开始,最终输出的PDF就会出现首页空白的问题。

解决方案

方案1:删除循环内的print()调用

kmTCGA()本身执行时就会直接输出绘图,不需要额外加print(),直接调用即可:

pdf("../mypath/KMplots.pdf", height = 8, width = 10)
for(i in names(categories)){ ## 数据集名称遍历
  for(j in variables){ ## 目标基因名称遍历
    kmTCGA(categories[[i]], 
           explanatory.names = j, 
           pval = T, 
           conf.int = F, 
           risk.table = F)
  }
}
dev.off()

方案2:先缓存所有绘图再统一输出

如果需要留存绘图对象做后续处理,可先把所有绘图存入列表,再统一打印到PDF设备,避免隐式绘图触发空白页:

# 缓存所有生存曲线到列表
plot_res <- list()
idx <- 1
for(i in names(categories)){
  for(j in variables){
    plot_res[[idx]] <- kmTCGA(categories[[i]], 
                               explanatory.names = j, 
                               pval = T, 
                               conf.int = F, 
                               risk.table = F)
    idx <- idx + 1
  }
}

# 统一输出到PDF
pdf("../mypath/KMplots.pdf", height = 8, width = 10)
for (p in plot_res) {
  print(p)
}
dev.off()

内容的提问来源于stack exchange,提问作者necrosnake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 09:51:04