如何在R中的生存分析中使用字符串变量?
问题描述:
我希望在R中应用参数生存分析。我的数据是老兵的肺癌研究数据。下面是数据的第20列:如何在R中的生存分析中使用字符串变量?
我想我需要转换celltype
中分类虚拟变量讲义建议位置:
Firstty,我想知道是否有任何方式使用原始形式的celltype
。如果是这样,怎么样?
其次,我如何创建上面提到的虚拟变量?
这里是你如何让整个数据:
library(survival)
veteran
和这里的模型是如何安装在R:
weibull <- survreg(S ~c2 + c3 + c4, dist="w")
这里是输出:
答
您可以创建一个模型矩阵,其中包含的4个虚拟变量与model.matrix
:
model.matrix(~ 0 + celltype, veteran)
结果:
celltypesquamous celltypesmallcell celltypeadeno celltypelarge
1 1 0 0 0
2 1 0 0 0
3 1 0 0 0
4 1 0 0 0
5 1 0 0 0
.
.
.
答
你不需要做任何特殊。只需在公式中输入该变量名称即可。 (我没有留下深刻印象与你的教练的R编程能力,如果这是你教的):
> weibull <- survreg(Surv(time,status) ~celltype, dist="w", data=veteran)
> weibull
Call:
survreg(formula = Surv(time, status) ~ celltype, data = veteran,
dist = "w")
Coefficients:
(Intercept) celltypesmallcell celltypeadeno celltypelarge
5.4065502 -1.0831923 -1.2162022 -0.2627843
Scale= 1.03048
Loglik(model)= -734.2 Loglik(intercept only)= -748.1
Chisq= 27.87 on 3 degrees of freedom, p= 3.9e-06
n= 137
答
要改变的因素,你可以使用下面的代码:
DataFrame$celltype[DataFrame$celltype == "large"] <- 1
与此代码您可以更改数据框的每个部分。请记住,你必须改变从要素价值的模式,以数字,如果你要计算的东西
DataFrame$celltype <- as.numeric(DataFrame$celltype)
最好PAJ
PS:我不知道这是否是问题
+0
谢谢是的,这是问题(第二个) – 2014-12-04 20:59:08
谢谢代码,但你的输出与我的讲义中的输出不同。你觉得有什么不同?我已经把输出放到我的帖子上面。 – 2014-12-04 20:38:29
看起来非常类似于我的输出。只有'(Intercept)'参数是不同的,推理统计都是一样的。你从来没有展示过这个'S'对象是如何创建的,所以你现在真的要求我们读你的思想。 – 2014-12-04 21:08:02
这是因为S没有在讲义中给出。看了数据后,我认为S = Surv(时间,状态)。对不起, – 2014-12-04 21:14:27