我正在尝试更改我的Kaplan Meier生存函数的y轴。我正在使用autoplot为幸存物体创建一个ggplot。它位于survMisc库中。
输出当前的y轴从0到1,但我想将其更改为0.5到1.在autoplot中似乎没有允许我更改轴的参数。
如果可以,我还想更改刻度线的间隔。它目前每2.5年(短轴)有它,但我想每年都这样。
我已经从加州大学洛杉矶分校网站上附上了一个样本生存代码,但我的自动编码代码与我的脚本相同。感谢。
hmohiv<-read.table("http://www.ats.ucla.edu/stat/r/examples/asa/hmohiv.csv", sep=",", header = TRUE)
library(survival)
library(ggplot2)
library(Hmisc)
library(ggfortify)
attach(hmohiv)
hmohiv.surv <- survfit( Surv(time, censor)~ 1)
summary(hmohiv.surv)
autoplot(hmohiv.surv, type = "CI", palette="Set2", pVal=TRUE,
title="Recurrence Free Survival",
legTitle = "Adjuvant Treatment",
xLab="Years to Recurrence", yLab="Probability",
censSize = 2,
alpha = 0.9,
tabTitle = "Number at Risk",
tabTitleSize = 14,
tabLabSize = 2,
nRiskSize = 4,
timeTicks = "minor"
) + scale_y_continuous(limits=c(0.5,1))
没有
,它运行良好+ scale_y_continuous(limits=c(0.5,1))
但是当我用比例尺运行它时,它会给我以下错误:
autoplot中的错误(hmohiv.surv,type =“CI”,palette =“Set2”,pVal = TRUE ,: 二元运算符的非数字参数
答案 0 :(得分:2)
您可以这样做(最好还指定xlim
):
autoplot(hmohiv.surv, ylim = c(0.5, 1.0))
autoplot(hmohiv.surv) + ylim(c(0.5, 1.0))
另一个选项是使用fortify
将survfit
转换为data.frame
,然后过滤并绘制。
hmohiv.df <- fortify(hmohiv.surv)
head(hmohiv.df)
# time n.risk n.event n.censor surv std.err upper lower
# 1 1 100 15 2 0.8500000 0.04200840 0.9229465 0.7828189
# 2 2 83 5 5 0.7987952 0.05036890 0.8816770 0.7237046
# 3 3 73 10 2 0.6893712 0.06863972 0.7886410 0.6025969
# 4 4 61 4 1 0.6441665 0.07656258 0.7484595 0.5544060
# 5 5 56 7 0 0.5636457 0.09172158 0.6746519 0.4709043
# 6 6 49 2 1 0.5406398 0.09633941 0.6529986 0.4476141
ggfortify:::autoplot.survfit(hmohiv.df[hmohiv.df$surv > 0.5, ])