如何解决从 R 中的多个模型绘制风险比
我只想从一个图中的多个模型中绘制暴露变量的风险比,该图中还可以显示 p 值和 CI。我不能使用风险比图,例如来自 rms 库,因为它将基于 1 个模型绘制所有变量 HR。 我发现这个问题 Hazard ratios plot 中的代码几乎完全符合我想要实现的目标,但由于它绘制了一个模型中某些变量的风险比,因此风险比的颜色相同。
我想创建一个非常相似的图,但具有不同颜色的不同模型的风险比和 CI。我试图修改链接中的代码,但它没有按我预期的那样工作。
我根据链接中的代码修改了数据框和数据图。
mydf1 <- data.frame(
SubgroupH=c('Female',NA,'Male',NA),Subgroup=c(NA,"Age under 60",'Age under 60'),NoOfPatients=c(NA,1000,800),HazardRatio=c(NA,0.90,1.20),HazardLower=c(NA,0.77,1.01),HazardUpper=c(NA,1.07,1.40),Pvalue=c(NA,0.10,0.03),stringsAsFactors=FALSE
)
rowseq <- seq(nrow(mydf1),1)
par(mai=c(1,0))
plot(mydf1$HazardRatio,rowseq,pch=15,xlim=c(-10,12),ylim=c(0,7),xlab='',ylab='',yaxt='n',xaxt='n',bty='n')
axis(1,seq(-2,2,by=.4),cex.axis=.5)
segments(1,-1,1,4.25,lty=3) #4.25
segments(mydf1$HazardLower,mydf1$HazardUpper,rowseq)
mtext('Decreased risk',line=2.5,at=0,cex=.5,font=2)
mtext('Increased risk',1.5,at=2,font=2)
text(-8,4.5,"Model",cex=.75,font=2,pos=4)
t1h <- ifelse(!is.na(mydf1$SubgroupH),mydf1$SubgroupH,'')
text(-8,t1h,pos=4,font=3)
t1 <- ifelse(!is.na(mydf1$Subgroup),mydf1$Subgroup,'')
text(-7.5,t1,pos=4)
text(-5,"No. of\nPatients",pos=4)
t2 <- ifelse(!is.na(mydf1$NoOfPatients),format(mydf1$NoOfPatients,big.mark=","),'')
text(-3,t2,pos=2)
text(-1,"Hazard Ratio (95%)",pos=4)
t3 <- ifelse(!is.na(mydf1$HazardRatio),with(mydf1,paste(HazardRatio,' (',HazardLower,'-',HazardUpper,')',sep='')),'')
text(3,t3,pos=4)
text(7.5,"P Value",pos=4)
t4 <- ifelse(!is.na(mydf1$Pvalue),mydf1$Pvalue,'')
text(7.5,t4,pos=4)
我将非常感谢您的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。