在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)? 非常感谢你!
答案 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;