我希望在R中应用参数生存分析。我的数据是Veteran的肺癌研究数据。这是数据的前20列:
我想我需要将celltype
转换为分类虚拟变量,如讲义所示:
首先,我想知道是否有任何方法可以像原始形式一样使用celltype
。如果是这样,怎么样?
其次,我如何创建上面提到的虚拟变量?
以下是获取整个数据的方法:
library(survival)
veteran
以下是R模型的拟合方式:
weibull <- survreg(S ~c2 + c3 + c4, dist="w")
这是输出:
您可以使用celltype
为model.matrix
创建一个包含4个虚拟变量的模型矩阵:
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
.
.
.
要更改因子,您可以使用以下代码:
DataFrame$celltype[DataFrame$celltype == "large"] <- 1
使用此代码,您可以更改数据框的每个部分。请记住,如果要计算某些内容,则必须将值的模式从因子更改为数值
DataFrame$celltype <- as.numeric(DataFrame$celltype)
最好的页面
PS:我不确定这是不是问题
你不需要做任何特别的事情。只需在公式中输入该变量名称即可。 (如果那是你所教的内容,我对你教练的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