SAS:具有多行患者数据的特定类型疾病的计数

时间:2017-10-01 20:09:07

标签: sas frequency medical

我拥有数百万患者遭遇的大型数据集,其中包括诊断,时间戳,患者ID和人口统计信息。

我们发现特定类型的疾病经常与共同病症共存。

我想计算每位患者患此病的次数,然后创建一个直方图,显示有多少人患有1,2,3,4等疾病。

这是数据的格式。

PatientID   Diagnosis   Date    Gender  Age
1           282.1       1/2/10      F   25
1           282.1       1/2/10      F   87
1           232.1       1/2/10      F   87
1           250.02      1/2/10      F   41
1           125.1       1/2/10      F   46
1           90.1        1/2/10      F   58
2           140         12/15/13    M   57
2           282.1       12/15/13    M   41
2           232.1       12/15/13    M   66
3           601.1       11/19/13    F   58
3           231.1       11/19/13    F   76
3           123.1       11/19/13    F   29
4           601.1       12/30/14    F   81
4           130.1       12/30/14    F   86
5           230.1       1/22/14     M   60
5           282.1       1/22/14     M   46
5           250.02      1/22/14     M   53

一般来说,我在考虑DO循环,但我不知道从哪里开始,因为数据集中有重复项,例如患者1(282.1列出两次)。我不知道如何解释。有什么想法吗?

目标诊断计数为282.1,232.1,250.02。在这个例子中,患者1的计数为3,患者2的计数为2,等等。

编辑: 这是我使用的,但输出显示输出中多行的每个PatientID。

PROC SQL;
create table want as
select age, gender, patientID,
       count(distinct diagnosis_description) as count
   from dz_prev
   where diagnosis in (282.1, 232.1)
   group by patientID;
quit;

这就是输出表的样子。为什么这个患者ID会出现这么多次?

Obs AGE GENDER PATIENTID count
1 55 Male 107828695 1
2 54 Male 107828695 1
3 54 Male 107828695 1
4 54 Male 107828695 1
5 54 Male 107828695 1

2 个答案:

答案 0 :(得分:3)

我认为你可以通过SQL语句得到你想要的东西

A const

这只过滤您感兴趣的诊断,通过PatientID计算它们看到的不同时间,并将结果保存到新表中。

答案 1 :(得分:3)

如果您包含的变量既不是分组变量也不是汇总统计信息,那么SAS会很乐意将您的汇总统计信息重新合并回所有源记录。这就是你获得多个记录的原因。如果您的数据集涵盖多年,AGE通常会有所不同。如果您的数据混乱,GENDER也会有所不同。因此,为了快速分析,您可以尝试这样的事情。

create table want as
select patientID
     , min(age) as age_at_onset
     , min(gender) as gender
     , count(distinct diagnosis_description) as count
   from dz_prev
   where diagnosis in (282.1, 232.1)
   group by patientID
;