【发布时间】:2021-08-03 10:05:29
【问题描述】:
我对 R 很陌生。我有一个医院数据集,其中根据诊断为患者分配类别。例如
- 患者#:疾病分类
- 1:dis A/dis C
- 2:dis B
- 3:dis A/dis B/dis C
以此类推,总共有 8 种疾病。这里的“/”表示存在一种以上的疾病。我想对它们进行数字分类,使 dis A=1、dis B=2 等等。以上数据需为:
- 患者#:疾病分类
- 1:1/3
- 2:2
- 3: 1/2/3
我已经用 sapply 尝试过,作为水平的一个因素,但我能得到的最好的结果是正确的分类,只有一种疾病。组合疾病返回 NULL 值。有没有办法做到这一点?请帮忙!
这是一个示例:
structure(list(Classification = c("IHD/other/cardiopulmonary",
"IHD", "hypertensive", "IHD/other", "IHD/other", "IHD/other/CVA"
), Comorbidities = c("DM", "HT+DM", "HT+DM", NA, NA, "HT+DM"),
Diagnosis = c("CORONARY ARTERY DISEASE WITH MITRAL REGURGITATION WITH TRICUSPID REGURGITATION WITH PULOMNARY HYPERTENSION WITH DYSFUNCTION LEFT VENTRICLE WITH DIABETES MELLITUS",
"ACUTE CORONARY SYNDROME WITH ANTERIOR WALL MYOCARDIAL INFARCTION WITH CARDIOGENIC SHOCK WITH BLEEDING DIATHESIS WITH DIABETES MELLITUS WITH HYPERTENSION",
"ASPIRATION PNEUMONTIS WITH RESPIRATORY FALIURE WITH HYPERTENSION WITH HYPONATERMIA WITH DIABETES MELLITUS",
"ACUTE CORONARY SYNDROME WITH RIGHT BUNDLE BRANCH BLOCK WITH ANTERIOR WALL MYOCARDIAL INFARCTION WITH CARDIOGENIC SHOCK",
"COMPLETE HEART BLOCK WITH CARDIAC ARREST WITH INTERIOR WALL MYOCARDIAL INFARCTION",
"DIABETES MELLITUS WITH CORONARY ARTERY DISEASE WITH HYPERTENSION SYSTEMIC WITH ATRIAL FIBRILATION WITH PULMONARY TUBERCULOSIS WITH CEREBRO VASCULAR ACCIDENT WITH CARDIOGENIC SHOCK"
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))
【问题讨论】:
-
我尝试使用之前给出的汽车解决方案(我现在看不到它)但遇到了同样的问题
-
你能展示一个示例数据集吗?最好使用
dput(head(YOURDATA))。这样可以更轻松地构建合适的答案并对其进行测试。 -
如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。
-
添加为编辑
-
@user16584364 我删除了
car解决方案,因为我发现它不起作用。现在我用您的示例更新了我的解决方案。
标签: r categories numeric levels