首页 文章

R生存曲线图传说

提问于
浏览
1

我有一个看起来像这样的表:

ID Survival Event Allele
2   5   1   WildType
2   0   1   WildType
3   3   1   WildType
4   38  0   Variant

我想做一个kaplan meier情节,并告诉我野生型或变种是否能够存活更长时间 .

我有这个代码:

library(survival)
Table <-read.table("Table1",header=T)
fit=survfit(Surv(Table$Survival,Table$Event)~Table$Allele)
plot(fit,lty=2:3,col=3:4)

从拟合p值,我可以看出这两组的存活率具有显着不同的存活曲线 .

survdiff(公式= Surv(dat $ Death,dat $ Event)~dat $ Allele,rho = 0)N观察到的预期(O-E)^ 2 / E(O-E)^ 2 / V
dat $ Allele = Variant 5592 3400 3503 3.00 8.63 dat $ Allele = WildType 3232 2056 1953 5.39 8.63 Chisq = 8.6 on 1自由度,p = 0.0033

该图看起来如预期的那样(即两条曲线) .

我想要做的就是在图上放置一个图例,以便我可以看到哪些数据由黑线和红线表示,即Wild Type或Variant的存活时间更长 .

我试过这两个命令:

lab <-gsub("x=","",names(fit$strata))
legend("top",legend=lab,col=3:4,lty=2:3,horiz=FALSE,bty='n')

第一个命令有效(即我没有错误) . 第二个命令,我收到此错误:

strwidth错误(图例,单位=“用户”,cex = cex,font = text.font):plot.new尚未调用

我试过阅读论坛等,但没有一个答案似乎对我有用(例如,在top / topright / topleft等之间切换并不重要) .

编辑1:这是我得到此错误的表的示例:

ID Survival Event Allele
25808   5   1   WTHomo
22196   0   1   Variant
22518   3   1   Variant
25013   38  0   Variant
27354   5   1   Variant
27223   4   1   Variant
22700   5   1   Variant
22390   24  1   Variant
17586   1   1   Variant

究竟发生了什么:当我输入最后一个命令时(图例(“top”,图例=实验室,col = 3:4,lty = 2:3,horiz = FALSE,bty ='n')),XII窗口打开,除了它完全空白 .

但是如果你只输入“plot(fit,lty = 2:3,col = 3:4)”,则会出现XII窗口和图表 .

编辑2:此外,这个图将有两行,我如何判断哪一行是哪个变量?最简单的方法是输入summary(fit),它给了我两个表 . 然后,无论哪个变量出现在表格的第一位,我首先放入传奇?

非常感谢伊娃

1 回答

  • 1

    我也一直有“plot.new尚未被调用”错误的重复问题!奇怪的是,错误是间歇性的,重复相同的命令并不总是导致错误!在我的情况下,我发现通过在绘图命令前面加上

    plot.new()
    

    阻止错误出现!我不知道为什么 . 同样,我也可以使用您的命令在生存情节中添加图例 .

相关问题