首页 > 解决方案 > 为多元分析定义名义变量

问题描述

在我的数据库中,我有治疗代码,我可以计算医疗保健活动率。我想进行多变量分析,看看哪种治疗类型的患者最有可能收到回声和/或核磁共振。

治疗都有几个医疗保健代码(字符)

anthracyclines = c("55", "68", "402")
trastuzumab = c("200", "201", "202")
alkylatingagents = c("106", "208", "300", "610")

现在我想为治疗设定一个变量。我是这样定义的:

treatments = as.factor(c(anthracyclines, trastuzumab, alkylatingagents))

但是R仍然将其定义为10级的因子,参考原始代码。我应该如何对其进行编码以将其更改为 3 个级别?

模型最终应如下所示: 以成像百分比作为连续变量。

model.im = lm(imaging ~ as.factor(treatments) + Age)

在此先感谢您的帮助!

标签: rvariableslinear-regressioncategorical-data

解决方案


我们假设像你说的那样的治疗向量:

treatments = c(anthracyclines, trastuzumab, alkylatingagents)

如果治疗和成像按 3 种蒽环类、3 种曲妥珠单抗和 4 种碱化剂的顺序排列,您可以简单地写

Treatment = rep(c("anthracyclines","trastuzumab","alkylatingagents"),times=c(3,3,4))
lm(imaging ~ Treatments + Age)

如果没有,请尝试制作一个列表来映射它们

drug2cat = rep(c("anthracyclines","trastuzumab","alkylatingagents"),
times=c(length(anthracyclines),length(trastuzumab),length(alkylatingagents))
)
names(drug2cat) = c(anthracyclines, trastuzumab, alkylatingagents)
Treatments = drug2cat[treatments]
lm(imaging ~ Treatments + Age)

推荐阅读