在竞争风险分析的背景下,我绘制了以下图表,代表了按性别划分的死亡(=竞争风险)随时间推移的累积发生率:
# CREATE THE SIMULATED DATASET
# Set the sample size
n<- 8076
# CReate a variable for follow-up time
time<- c(rep(180,6533),sample(1:179,n-6533,replace = TRUE))
# Create a variable for status
status<-ifelse(time==180,0,1) # O= alive/censored
# 1 = death
# Create age
age<-sample(18:90,n,replace = TRUE)
# Create gender
sex<-sample(c("male","female"),n,replace = TRUE)
# Combine
df<-data.frame(time,status,age,sex)
df$sex<-as.factor(df$sex)
# Plot the cumulative incidence curve
library(cmprsk)
cum<-cuminc(df$time,df$status,group = df$sex,cencode = 0)
而不是有死亡的累积发生率,我想有生存概率(1-死亡的累积发生率)。为此,我使用了以下代码:
plot(cum, function(x) 1-x, main = "Survival Probability",xlab = "Survival proba",
ylab = "Time in days")
但它不工作,我得到了以下错误消息:
Error in title(...) :
cannot coerce type 'closure' to vector of type 'character'
你知道我该怎么解决吗?
1条答案
按热度按时间5uzkadbs1#
类
cuminc
的对象是一个列表。列表的前两个元素分别称为"female 1"
和"male 1"
。这些列表中的每一个都是包含元素time
、est
和var
的列表。est
元素是死亡的累积发生率。为了生存,你会选择1 - est
。str(cum)
的输出:要绘制生存曲线,请创建
cum
对象的副本,并修改女性和男性的est
元素,然后绘制它。(wh
参数用于将图例移动到与默认左上角不同的位置,该位置与生存曲线重叠。)这个解决方案有点古怪,在cmprsk包中可能有更好的解决方案。