我有一个患者的数据集和他们某些疾病的发病年龄。我想看看这些发病年龄相对于十年的频率。然而,一些患者有多种疾病,导致多发病年龄。
数据看起来像这样。如果患者没有患病,则年龄为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 :(得分: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;