首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生存分析中的生存时间

生存分析中的生存时间
EN

Stack Overflow用户
提问于 2016-09-30 16:07:24
回答 1查看 232关注 0票数 1

我在分析我的生存数据集时遇到了问题。我将把dataset的dput输出放在github链接中,以避免污染这个问题。

这是数据https://gist.github.com/anonymous/4fdff1c6d0853c41939e2a67d9e0e45b

在这个数据集中,我想为每个组绘制生存曲线图,所以我需要建立一个survfit()模型。

变量W1,W2,..,W43表示周数,数字表示某种度量。当我在任何一周中有一个点.时,这意味着那个人在那一周死了,因此接下来的每周都会被点.标记。

在一个生存模型中,这个死亡代表了一个事件(失败),如果个体在所有的周内生存,他代表一个被审查的数据。

为了像我知道的那样建立一个生存模型,我需要像下面这样的数据

代码语言:javascript
复制
time=c(3,4,8,8,5,2)
event=c(1,1,0,0,1,1)

在这种情况下,时间代表死亡时间(以周为单位),事件为1(如果死亡),0(如果被审查)。

编辑:--我想出了一个可能的解决方案,但我不知道如何才能做到。这个想法如下

( 1)取所有列W1、W2、.、W43和put 1(如果是a数)和0(如果是点. )

2)创建一个表示时间的新变量,该变量的值将是W1到W43列的总和,因此它将是W1+W2+...+W43。

3)创建一个表示事件的新变量,如果time=43 --这意味着该个体始终存活,那么它将为0(审查),如果小于43,则表示该个体死亡,则该变量为1。

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-30 16:49:03

我将您的dataset命名为sdat,这些操作添加了另外两个列:

代码语言:javascript
复制
sdat$time= apply(sdat[ ,grepl("W", names(sdat))], 1 , #work by rows on "W"-columns
                    function(r) which( r==".")[1] )  # seq-number of first "."
sdat$event <- as.numeric( !is.na(sdat$time) ) # convert NA's to logical and to 1,0
sdat$time= ifelse( is.na(sdat$time) , 43, sdat$time) # set time to 43 for survivors

 # Check results
 head( sdat[ , !grepl("W", names(sdat))] ) # remove "W" cols
  Group Ref Sex  M1   M2 M3  M4 time event
1    11   4   1 959 1940 10 184   23     1
2    11   4   1 960 1770 10 189   31     1
3    11   4   1 961 1970 10 166   23     1
4    11   4   1 962 1870  1 180   43     0
5    11   4   1 964 1780 11 239   43     0
6    12   4   1 966 1980 11 182   43     1

作为一名分析师,我会问,在导致死亡的“W”型-numbers上附加什么含义,但这不是你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39795731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档