我有一个病人信息数据集,我想要统计有多少患者(观察)具有给定的诊断代码。在diag1,diag2 ... diag9中,我有9个可能的变量。代码是V271。我无法弄清楚如何用“WHERE”子句或proc freq来做到这一点。跨多个变量的值的频率?
任何帮助将不胜感激!
我有一个病人信息数据集,我想要统计有多少患者(观察)具有给定的诊断代码。在diag1,diag2 ... diag9中,我有9个可能的变量。代码是V271。我无法弄清楚如何用“WHERE”子句或proc freq来做到这一点。跨多个变量的值的频率?
任何帮助将不胜感激!
您的基本策略是创建一个不是患者等级的数据集,但是一个观察值是一个患者诊断代码(因此每个患者最多有9个观察值)。例如:
data want;
set have;
array diag[9];
do _i = 1 to dim(diag);
if not missing(diag[_i]) then do;
diagnosis_Code = diag[_i];
output;
end;
end;
keep diagnosis_code patient_id [other variables you might want];
run;
然后,您可以在生成的数据集上运行proc freq。您还可以将标准从不丢失改为if diag[_i] = 'V271' then do;
,以便仅获取数据中的V271。
以下方法的注意事项是,如果一个人可以有多个诊断代码,这些诊断代码相当于通过多个代码找到的一个条件。这更像是一个诊断编码/实践问题,但我看到它发生了。 – Reeza 2015-02-10 20:57:13