#install.packages("survival")
#install.packages("forestplot")
library(survival)
library(forestplot)
setwd("D:\\BaiduNetdiskDownload\\98panCancer\\09.cox") #设置工作目录
rt=read.table("expTime.txt",header=T,sep="\t",check.names=F,row.names=1) #读取输入文件
rt$futime=rt$futime/365
gene=colnames(rt)[3]
#对肿瘤类型进行循环
outTab=data.frame()
for(i in levels(rt[,"CancerType"])){
rt1=rt[(rt[,"CancerType"]==i),]
cox=coxph(Surv(futime, fustat) ~ rt1[,gene], data = rt1)
coxSummary = summary(cox)
coxP=coxSummary$coefficients[,"Pr(>|z|)"]
outTab=rbind(outTab,
cbind(cancer=i,
HR=coxSummary$conf.int[,"exp(coef)"],
HR.95L=coxSummary$conf.int[,"lower .95"],
HR.95H=coxSummary$conf.int[,"upper .95"],
pvalue=coxP) )
}
write.table(outTab,file="cox.result.txt",sep="\t",row.names=F,quote=F) #输出基因和p值表格文件
############绘制森林图函数############
bioForest=function(coxFile=null,forestFile=null,forestCol=null){
#读取输入文件
rt=read.table(coxFile,header=T,sep="\t",row.names=1,check.names=F)
data=as.matrix(rt)
HR=data[,1:3]
hr=sprintf("%.3f",HR[,"HR"])
hrLow=sprintf("%.3f",HR[,"HR.95L"])
hrHigh=sprintf("%.3f",HR[,"HR.95H"])
pVal=data[,"pvalue"]
pVal=ifelse(pVal<0.001, "<0.001", sprintf("%.3f", pVal))
clrs <- fpColors(box=forestCol,line="darkblue", summary="royalblue") #定义颜色
tabletext <-
list(c(NA, rownames(HR)),
append("pvalue", pVal),
append("Hazard ratio",paste0(hr,"(",hrLow,"-",hrHigh,")")) ) #定义图片文字
pdf(file=forestFile,width = 9,height = 6,onefile = FALSE)
forestplot(tabletext,
rbind(rep(NA, 3), HR),
col=clrs,
graphwidth=unit(50, "mm"),
xlog=T,
lwd.ci=4,
boxsize=0.6,
xlab="Hazard ratio",
txt_gp=fpTxtGp(ticks=gpar(cex=1.1),xlab=gpar(cex = 1.25))
)
dev.off()
}
############绘制森林图函数############
bioForest(coxFile="cox.result.txt",forestFile="forest.pdf",forestCol="red")
但运行出来的文件是空的,错误提示是:Error in read.table(coxFile, header = T, sep = "\t", row.names = 1, check.names = F) :
no lines available in input
您好,最终问题解决了吗
Error in read.table,table里面没有数据
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632