缺少上限时仍绘制CI的下限

时间:2019-03-27 20:41:44

标签: r ggplot2 plot

当前,我有一些带有估计值和上下限的数据,我希望将其绘制为CI。但是,我的一些估计没有上限。当我尝试绘制CI时,它会删除整个CI,而不仅仅是上限。我仍然希望绘制下限。有没有办法绘制下限,即使没有上限也是如此。 ggplot2或基本plot的答案都可以。

这是错误

  

警告消息:删除了1个包含缺失值的行   (geom_errorbar)。

数据

    structure(list(trials2 = c("A", "B"), surv = c(9.4, 18.4), drug_site2 = c("Site X", 
"Site X"), lower = c(5.7, 17.3), upper = c(13.8, NA)), row.names = c(NA, 
-2L), class = "data.frame")

情节

ggplot(data = survs2)+
  geom_point(aes(x=drug_site2,y=surv,color=trials2),size=3)+
  geom_errorbar(aes(x = drug_site2,ymin = lower, ymax = upper,color=trials2))+
  coord_flip()+
  scale_y_continuous("Median Survival (Months)", limits = c(0,60))+
  scale_x_discrete("")

enter image description here

更新:这是论文中报告的结果

摘自文字:

  

中位生存时间为18.4(95%CI,17.3,NR)和13.6(95%CI,   在药物和安慰剂组中分别为11.3至15.8)个月。

纸上图片: enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。经过以上讨论,我仍然认为显示下限而不显示上限很重要。 “未报告”与“未达到上限”不同,我认为这是一个真正的缺失值/根本未报告(无论出于何种原因)。

解决方法是使用两次geom_linerange,以从下至估计范围再跨一次,然后从估计到上限。下界在那里,只是很小。

ggplot(data = survs2)+
  geom_point(aes(x=drug_site2,y=surv,color=trials2),size=3)+
  geom_linerange(aes(x = drug_site2, ymin = lower, ymax = surv, color = trials2))+
  geom_linerange(aes(x = drug_site2, ymax = upper, ymin = surv, color = trials2))+
  coord_flip()+
  scale_y_continuous("Median Survival (Months)", limits = c(0,60))+
  scale_x_discrete("")

enter image description here