我有一個病人信息數據集,我想要統計有多少患者(觀察)具有給定的診斷代碼。在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