【发布时间】:2018-05-30 20:57:56
【问题描述】:
我有一个患者数据集,每个诊断都在不同的行上。
这是一个例子:
patientID diabetes cancer age gender
1 1 0 65 M
1 0 1 65 M
2 1 1 23 M
2 0 0 23 M
3 0 0 50 F
3 0 0 50 F
我需要隔离诊断为糖尿病和癌症的患者;他们的唯一患者标识符是 PatientID。有时它们都在同一条线上,有时它们不在同一条线上。我不确定如何执行此操作,因为信息位于多行上。
我该怎么做呢?
这是我目前所拥有的:
PROC SQL;
create table want as
select patientID
, max(diabetes) as diabetes
, max(cancer) as cancer
, min(DOB) as DOB
from diab_dx
group by patientID;
quit;
data final; set want;
if diabetes GE 1 AND cancer GE 1 THEN both = 1;
else both =0;
run;
proc freq data=final;
tables both;
run;
这对吗?
【问题讨论】:
-
取指标变量的最大值 BY PATIENTID。
-
问题中的代码似乎产生了您想要的结果,因此它已经是正确的。您是否在问是否有其他更主要的方法来获得相同的正确结果?
标签: sas bioinformatics