我以前曾尝试寻求帮助,但实际上并没有解决我的问题。 可以在此处找到更多信息:(您可以在此处找到数据集)Survival analysis combining survfit and ggplot objects
不幸的是,由于我的代码主要基于外部程序,因此我无法提供可靠的示例来发布。我很肯定,尽管我的问题可以得到解答。
到达一个点,我创建了2个ggplot2对象,这些对象需要组合成一个图形,一个图形叠加在另一个图形之上。
即,一公里等级的地块:
> class(km.plot$plot)
[1] "gg" "ggplot"
和两个:
> class(surv.plot)
[1] "gg" "ggplot"
两者共享相同的属性
km.plot $ plot https://i.stack.imgur.com/n5qmm.png
surv.plot https://i.stack.imgur.com/jCUOR.png
我的问题是如何将结果图合并成一个图?也就是说,要使surv.plot和km.plot $ plot彼此重叠。
按照另一个用户的建议执行以下操作会导致错误:
km.plot$plot + surv.plot$layers[[1]]
Error in FUN(X[[i]], ...) : object 'label' not found
我认为此错误与以下几行有关
> surv.plot$layers
[[1]]
mapping: y = ~mean, group = ~label, colour = ~label
geom_line: na.rm = FALSE
stat_identity: na.rm = FALSE
position_identity
ggplot(data, aes(x=t)) +
geom_line(aes(y= mean, group= label, colour= label), size=1.5) +
但是我还添加了Inherit.aes = FALSE,但没有解决我的问题。
我还检查了
> head(surv.plot)
$`data`
curve t mean lci uci label
1 weibull 0.00000000 1.0000000 1.00000000 1.0000000 Cabo
2 weibull 0.05514645 0.9995771 0.99816278 0.9999721 Cabo
3 weibull 0.11029289 0.9990793 0.99646259 0.9999098 Cabo
4 weibull 0.16543934 0.9985407 0.99479769 0.9998211 Cabo
5 weibull 0.22058579 0.9979715 0.99316001 0.9997176 Cabo
> head(km.plot)
$`plot`
$`data.survplot`
time n.risk n.event n.censor surv std.err upper lower
1 0.4271047 79 0 1 1.0000000 0.00000000 1.0000000 1.0000000
2 1.0841889 78 1 0 0.9871795 0.01290349 1.0000000 0.9625264
3 1.3470226 77 1 0 0.9743590 0.01836796 1.0000000 0.9399054
4 3.9753593 76 1 0 0.9615385 0.02264554 1.0000000 0.9197944
5 4.0082136 75 1 0 0.9487179 0.02632491 0.9989527 0.9010094
我感到困惑。我几乎可以肯定这是可以做到的,因为两个对象在结构上基本上是相同的,所以我看不出为什么不能做到这一点。但是我花了很多时间没有希望。我真的希望有人能指导我!
感谢您抽出宝贵时间阅读这篇文章