Surv错误消息“开始和停止的长度不同”实际上是什么意思?

时间:2019-03-28 06:03:56

标签: r survival-analysis population-count

我正在根据一组动物(秀丽隐杆线虫)分析一组寿命数据,但不确定是否正确设置了数据或我是否错误使用了Surv函数。

我有一张桌子,上面列出了从开始到现在的天数和每天活着的动物数量。我不是在追踪单个动物,而是在追踪总数。我已经尝试使用可以死亡的数字,但是并没有改变我收到的错误消息。

我正在使用的数据:

data = matrix (c(0,143,2,28,3,126,4,103,6,102,7,100,8,88,9,70,10,51,11,44,13,27,15,10,17,4,18,3,20,2,22,2,24,0), ncol=2, byrow = TRUE)
colnames(data) <- c("Day", "Survival")

我目前拥有的代码:

data <- data %>% 
Surv (time = as.numeric("Day"), event = as.numeric("Survival"))

注意:我正在使用as.numeric,因为我正在导入CSV文件,并且该列被标记为<dbl>

我收到的完整错误消息:

Error in Surv(., time = as.numeric("Day"), event = as.numeric("Survival")) : 
  Start and stop are different lengths
In addition: Warning message:
In Surv(., time = as.numeric("Day"), event = as.numeric("Survival")) :
  NAs introduced by coercion

任何建议都值得赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

那么您刚开始使用903种蠕虫?还有143个在您开始计时之前就已经死了吗?他们都没有存活超过24天?

(假设我从您的数据中得出的推论是正确的...。)

因此,“生存”列不应是事件值,因为事件对于死亡而言是1,对于后续事件而言是0(受审查)。显然,由于您没有任何审查,因此所有事件都应为1。死亡数应在survfit或其他函数中的weights参数中分配。

 data = cbind( as.data.frame(matrix (c(0,143,2,28,3,126,4,103,6,102,7,100,8,88,9,70,10,51,11,44,13,27,15,10,17,4,18,3,20,2,22,2,24,0),
                                     ncol=2, byrow = TRUE)),
               "ones"=1)
 colnames(data) <- c("Day", "Survival", "ones")

fit <- survfit(Surv(time=Day, event=ones)~1, data=data, weights=data$Survival )
png();plot(fit); dev.off()

enter image description here