我有一个看起来像这样的表:
ID Survival Event Allele
2 5 1 WildType
2 0 1 WildType
3 3 1 WildType
4 38 0 Variant
我想做一个卡普兰梅尔图,并告诉我野生型或变种是否倾向于存活更长时间。
我有这个代码:
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(formula = Surv(dat$Death, dat$Event) ~ dat$Allele, rho = 0)
# N Observed Expected (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 degrees of freedom, 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,字体 = 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
究竟发生了什么:当我输入最后一个命令(legend("top",legend=lab,col=3:4,lty=2:3,horiz=FALSE,bty='n'))时,XII 窗口打开,但它是完全空白的。
但是,如果您只是键入“plot(fit,lty=2:3,col=3:4)”,则会出现 XII 窗口和绘图。
编辑 2:此外,该图将有两条线,我如何判断哪条线是哪个变量?最简单的方法是输入summary(fit),它给了我两个表。那么,无论哪个变量在表中排在第一位,我在图例中排在第一位?
非常感谢伊娃