GO,KEGG富集保存的PDF格式文件打不开,R软件if循环下p
先上代码:

kegg <- enrichKEGG(diff$ENTREZID, organism = 'hsa', keyType = 'kegg', pvalueCutoff =0.05,pAdjustMethod = 'none', minGSSize = 10,maxGSSize = 500,qvalueCutoff = 1,use_internal_data = T,universe=df$ENTREZID)
KEGG富集分析代码:
if(nrow(as.data.frame(kegg))>0){ #如果有符合的通路,则画图
name7 <- paste("KEGG_Enrich_BarPlot_Significant_Top10.pdf",sep = "",collapse = "")
pdf(file=name7,width=8,height=10)
barplot(kegg,showCategory=10,drop=T,color = "pvalue")
dev.off()
}

首先排除是不是kegg 里没有通路,不是这个原因
> nrow(as.data.frame(kegg))
[1] 5
排除是不是if循环有问题,直接运行if循环下的代码,发现pdf可以正常生成并能够打开。
所以问题出在if循环上。网上并没有搜到相关的解决办法。最终尝试N次后发现可以这样解决。
if(nrow(as.data.frame(kegg))>0){
name6 <- paste("KEGG_Enrich_DotPlot_Significant_Top10.pdf",sep = "",collapse = "")
pdf(file=name6)
p<-dotplot(kegg,showCategory=10,color = "pvalue")
print(p)
dev.off()
}