先上代碼:

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){ #如果有符合的通路,則畫(huà)圖
? 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 里沒(méi)有通路,不是這個(gè)原因
> nrow(as.data.frame(kegg))
[1] 5
排除是不是if循環(huán)有問(wèn)題,直接運(yùn)行if循環(huán)下的代碼,發(fā)現(xiàn)pdf可以正常生成并能夠打開(kāi)。
所以問(wèn)題出在if循環(huán)上。網(wǎng)上并沒(méi)有搜到相關(guān)的解決辦法。最終嘗試N次后發(fā)現(xià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()
}