Sas 从数据集中获取随时间重复测量的频率

Sas 从数据集中获取随时间重复测量的频率,sas,statistics,frequency,Sas,Statistics,Frequency,这是我的问题:我有一个数据集,随着时间的推移有10个测量值,类似这样: ID Expenditure Age 25 100 89 25 102 89 25 178 89 25 290 89 25 200 89 . . . 26 100 79 26 102 79 26 178 79 26 290 79 26 20

这是我的问题:我有一个数据集,随着时间的推移有10个测量值,类似这样:

ID  Expenditure  Age
25   100         89
25   102         89
25   178         89
25   290         89
25   200         89
.
.
.
26   100         79
26   102         79
26   178         79
26   290         79
26   200         79
.
.
.
27   100         80
27   102         80
27   178         80
27   290         80
27   200         80
.
.
.
data Age;
set Age_freq;
freq = Frequency Count /10;
run;
现在我想获得年龄的频率,所以我做了以下工作:

  proc freq data=Expenditure;
  table Age / out= Age_freq outexpect sparse;
  run;
输出:

 Age  Frequency Count  Percent of total frequency
 79   10         0.1
 80   140        1.4
 89   50         0.5
问题是,这会计算所有行,但不考虑每个id的重复测量。因此,我想创建一个具有如下实际频率的新列:

ID  Expenditure  Age
25   100         89
25   102         89
25   178         89
25   290         89
25   200         89
.
.
.
26   100         79
26   102         79
26   178         79
26   290         79
26   200         79
.
.
.
27   100         80
27   102         80
27   178         80
27   290         80
27   200         80
.
.
.
data Age;
set Age_freq;
freq = Frequency Count /10;
run;
但我认为sas不认识这个“频率计数”变量,有人能给我一些关于这个的见解吗


谢谢

您必须删除重复记录,以便每个ID都有一条包含年龄的记录

解决方案:使用ID和Age的disticnt值创建一个新表。然后运行
proc freq

代码: 我创建了一个名为expensation_ID的新表,该表的ID和Age没有任何重复值

data Expenditure;
input ID  Expenditure  Age ;
datalines;
25   100         89
25   102         89
25   178         89
25   290         89
25   200         89
26   100         79
26   102         79
26   178         79
26   290         79
26   200         79
27   100         80
27   102         80
27   178         80
27   290         80
27   200         80
28   100         80
28   102         80
28   178         80
28   290         80
28   200         80
;
run;
proc sql;
create table Expenditure_ids as
select distinct ID, Age from Expenditure ;
quit;
proc freq data=Expenditure_ids;
  table Age / out= Age_freq outexpect sparse;
  run;
输出:

Age=79 COUNT=1 PERCENT=25 
Age=80 COUNT=2 PERCENT=50 
Age=89 COUNT=1 PERCENT=25