2016-06-23 55 views
0

我有一個數據集,患者和他們的某些疾病的發病年齡。我想看看這些年齡相對於十年的頻率。但是,一些患者有多種疾病,導致多發病的年齡。SAS中有多個值的計數變量

數據看起來像這樣。如果病人沒有發病,年齡爲0

IDNUM HOHTAge HOGDAge CelDAge 
1   25  26  15 
2   65  32  0 
3   21  12  59 

我想我需要編譯這些成一個單一的變量,並創建一個頻率表和他們在一起,但這種可能的/有沒有更好的解決辦法?

最後,我要像做

IF AgeOnset LE 29 THEN AGEGROUP = 0; 
ELSE IF 30 LE AgeOnset LE 39 THEN AGEGROUP = 1; 
ELSE IF 40 LE AgeOnset LE 49 THEN AGEGROUP = 2; 
ELSE IF 50 LE AgeOnset LE 59 THEN AGEGROUP = 3; 
ELSE IF AGEOnset GE 60 THEN AGEGROUP = 4; 

PROC FREQ; TABLES AGEGROUP; 
+0

有什麼不對您當前的解決方案?十年如何適應這裏?你提到它,但它不在你的示例數據集上。 – superfluous

+0

@superfluous我想統計每個十年發病的疾病數量,並比較幾十年後更常見的疾病,比較疾病的進展等。 – ybao

+0

您需要更多解釋第一個表格。如果這些疾病是相關的,我會建議根據疾病分開發病和/或首先發病。 – Reeza

回答

1

讓你agegroup變量,然後我喜歡PROC SQL

proc sql; 
    create table agegroups as 
    select 
    count(case when HOHTAge>0 then 1 end) as HOHT_freq, 
    count(case when HOGDAge>0 then 1 end) as HOGD_freq 
    from dataset 
    group by AGEGROUP; 
quit;