如何删除所有重复的观察,但在SAS中添加频率列?

时间:2015-10-06 20:42:48

标签: sas

在SAS的数据集中,我有多次观察。我想要做的是:我正在尝试添加每个观察频率的列,并确保我只在我的数据集中保留一次。我必须为包含许多行和大约8个变量的数据集执行此操作。

name     id     address    age
jack     2      chicago     50
peter    4      new york    45
jack     2      chicago     50

这必须成为:

name     id     address    age     frequency
jack     2       chicago    50        2
peter    4      new york    45        1

是否有人知道如何在SAS中执行此操作(最好不使用SQL)? 非常感谢你!

1 个答案:

答案 0 :(得分:1)

@ kl78是对的,proc summary是这里最好的非SQL解决方案。这在内存中运行会导致非常大的数据集出现问题,但您应该可以使用8列。

class _all_将按所有变量分组,默认输出频率,因此无需指定任何度量。我已删除了其他自动变量_type_,因为它与此处不相关并重命名为_freq_

data have;
input name $ id address &$ age;
datalines;
jack     2      chicago     50
peter    4      new york    45
jack     2      chicago     50
;
run;

proc summary data=have nway;
class _all_;
output out=want (drop=_type_ rename=(_freq_=frequency));
run;