R:按组打印flexsurvspline对象和颜色

R:按组打印flexsurvspline对象和颜色,r,R,我正在使用flexsurvspline分析五个不同年龄组的患者数据的事件发生时间。是否有可能按年龄组对五条不同的回归线进行着色,以便识别各组? 我唯一能做到的就是用一个包含不同颜色的向量给观察结果着色,这就足够了。但是我的问题是,我不知道如何设置顺序,从而设置组的颜色,这样我就知道哪个年龄组属于哪个曲线。 通过运行summaryspline,我知道老年人的风险增加了,但年龄组的颜色不一致,这是因为我不知道如何排序 我做了以下工作: 分配年龄组 正如您可能已经注意到的那样,我实际上并没有使用dia

我正在使用flexsurvspline分析五个不同年龄组的患者数据的事件发生时间。是否有可能按年龄组对五条不同的回归线进行着色,以便识别各组? 我唯一能做到的就是用一个包含不同颜色的向量给观察结果着色,这就足够了。但是我的问题是,我不知道如何设置顺序,从而设置组的颜色,这样我就知道哪个年龄组属于哪个曲线。 通过运行summaryspline,我知道老年人的风险增加了,但年龄组的颜色不一致,这是因为我不知道如何排序

我做了以下工作:

分配年龄组 正如您可能已经注意到的那样,我实际上并没有使用dia$col来为观察值着色,因为这只是为组提供向量中的前五种颜色,而不是唯一的颜色。 此外,不可能将颜色向量传递给“col=”,它只是为所有五行绘制向量中的第一种颜色

有没有办法通过颜色区分这些组,并且知道哪些颜色属于哪些组?当然,我可以根据摘要的输出硬编码颜色,但可能有更好的方法?如果您能给我一些建议,我将不胜感激

提前谢谢你

dia$agecat[dia$age2 > 29 & dia$age2 <= 49] <- "30-49"
dia$agecat[dia$age2 > 49 & dia$age2 <= 59] <- "50-59"
dia$agecat[dia$age2 > 59 & dia$age2 <= 69] <- "60-69"
dia$agecat[dia$age2 > 69 & dia$age2 <= 79] <- "70-79"
dia$agecat[dia$age2 > 79] <- "80+"
dia$agecat2 <- as.factor(dia$agecat)
diaspline25 <- flexsurvspline(Surv(months_to_event, censor) ~ agecat2, data=dia, knots=c(log50), log(100), log(150), log(200), log(250)), scale="hazard")
cols <- divPalette(n=5, name= "RdYlBu")
dia$col[dia$agecat2=="30-49"] <- cols[1]
dia$col[dia$agecat2=="50-59"] <- cols[2]
dia$col[dia$agecat2=="60-69"] <- cols[3]
dia$col[dia$agecat2=="70-79"] <-  cols[4]
dia$col[dia$agecat2=="80+"] <- cols[5]
ages <- c("30-49", "50-59", "60-69", "70-79", "80+")
plot(diaspline25, ci=TRUE, lwd=3, lwd.ci=1, col.obs=cols, col = "black", col.ci="grey", xlab="Months from diagnosis", ylab="Proportion")
legend("bottomleft", legend=ages, col = cols, pch=19, cex = 1, title = "Age category")