【发布时间】:2016-09-30 16:07:24
【问题描述】:
我在分析我拥有的生存数据集时遇到了问题。我会将数据集的dput 输出放在github链接中,以免污染问题。
这是https://gist.github.com/anonymous/4fdff1c6d0853c41939e2a67d9e0e45b的数据
在这个数据集中,我想为每个组绘制生存曲线图,所以我需要创建一个survfit() 模型。
变量 W1,W2,..,W43 代表周数,数字代表某种度量。当我在任何一周有一个点 . 时,这意味着该人在该周死亡,因此接下来的每个星期都用点 . 标记
在生存模型中,这种死亡代表一个事件(失败),如果个人在所有几周内存活,他代表一个删失数据。
要按照我知道的方式制作生存模型,我需要下面这样的数据
time=c(3,4,8,8,5,2)
event=c(1,1,0,0,1,1)
在这种情况下,时间表示以周为单位的死亡时间,如果死亡则事件为 1,如果被删失则为 0。
编辑:我想到了一种可能的解决方案,但我不知道该怎么做。思路如下
1) 取所有列 W1,W2,...,W43,如果是数字则输入 1,如果是点则输入 0.
2) 创建一个表示时间的新变量,该变量的值将是 W1 到 W43 列的总和,因此它将是 W1+W2+...+W43。
3) 创建一个代表事件的新变量,如果 time=43 这意味着个人一直幸存,那么它将为 0(删失),如果小于 43 则意味着个人死亡,那么变量将是 1。
有人可以帮我做吗?
【问题讨论】:
-
新建议也可能会奏效。如果您更喜欢将
is.numeric(as.numeric(row_values))的数量相加,请继续发布答案。我猜你会学到很多关于使用apply的陷阱,但这对于R-newb 来说将是一个很好的练习。 (但我碰巧认为使用which( condition )[1]是更 R-ish 的编码风格。)