SAS:多条线路上的多个患者诊断

SAS: Multiple patient diagnoses on multiple lines

我有一个患者诊断数据集,每行一个诊断代码,导致多行患者诊断。每个患者都有一个唯一的 patientID。我还有这些患者的年龄、种族、性别等数据。

我如何在使用 PROC FREQ、Logistic、Univariate 等时向 SAS 表明他们是同一个患者?

这是数据的示例:

patientID diagnosis age gender  lab
1         15.02     65    M      positive
1         250.2     65    M      positive
2         348.2     23    M      negative
2         282.1     23    M      negative
3                   50    F      positive

我得到了每个接受过特定实验室检查的患者的数据(无论结果是阳性),以及他们所有的诊断结果,每一个都出现在不同的行上(作为对 SAS 的不同观察)。首先,我需要排除所有实验室结果为阴性的患者,我计划对其使用 IF 语句。实验室确定患者是否患有 X 病。有些患者除了 X 病外没有任何其他疾病,例如患者 #3。

我想进行的分析:

  1. 使用 PROC FREQ 计算每种疾病的频率。
  2. 使用 PROC FREQ 卡方表征每次诊断的年龄和种族关系。
  3. PROC Logistic 用于确定在疾病 X 之上发展其他疾病的风险因素(年龄、种族、性别等)。

谢谢!

您问题的答案是默认情况下不能。但是当你处理数据时,你可以很容易地解释它。国际海事组织保持长期更容易。

你上面的问题问的太多了,我只回答一个,如何统计得x病的人数。

Proc sort data = have out = unique_disease_patient nodupkey;
 By patientID Diag;
Run;


Proc freq data = unique_disease_patient noprint;
Table disease  / out = disease_patient_count;
Run; 

请注意,这在 SQL

中要容易得多
 Proc sql;
 Create table want as
 Select diag, count(distinct patientID) 
 From have
 Group by diag;
 Quit;

我假设这是家庭作业,因为除了探索性分析外,您不太可能在实践中这样做。