Спасибо за ваш тщательный ответ!

я пытался обратиться за помощью, но на самом деле не решил мою проблему. Более подробную информацию можно найти здесь: (вы можете найти набор данных здесь)https://stackoverflow.com/questions/51442502/survival-analysis-combining-survfit-and-ggplot-objects

К сожалению, я не могу привести убедительный пример для публикации, поскольку мой код в значительной степени основан на внешних программах. Я уверен, что на мой вопрос можно ответить независимо.

Я достигаю точки, где я создаю 2 объекта ggplot2, которые необходимо объединить в одну фигуру, один наложенный поверх другого.

А именно, один км. Участок, который имеет класс:

класс (km.plot $ сюжет)
1 "gg" "ggplot"

и два:

класс (surv.plot)
1 "gg" "ggplot"

Оба имеют одинаковые атрибуты

km.plot $ участок

surv.plot

У меня вопрос, как я могу объединить полученные графики в один график? То есть, чтобы оба сюжета Survival.Plot и km.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

Я сбит с толку. Я почти уверен, что это можно сделать, поскольку оба объекта в основном идентичны с точки зрения структуры, поэтому я не вижу причин, почему это невозможно сделать. Но я потратил довольно много времени на это без надежды. Я действительно надеюсь, что кто-то может направить меня!

Спасибо, что нашли время, чтобы прочитать этот пост