【发布时间】:2018-11-19 14:16:52
【问题描述】:
假设我希望仅校准每个类别中值的频率大于或等于 10 的数据值。(这是对我的 SAS 表中数据的简化方式,有同一类别的相同值出现在不同行的原因,实际数据集中有4个类别和数十万个值观察值)
Category Value Frequency
A -1 6
A -1 7
A -0.5 4
A 0.1 12
B -1 9
B -0.9 6
B -0.9 5
B -0.5 14
因此,在上面的 A 类示例中,值 -1 和 0.1 将被校准,因为它们的频率分别为 13 和 12,大于或等于 10,但 -0.5 不会。但是,对于 B 类,值 -0.9 和 -0.5 将在(频率=11,14)上进行校准。不同的类别将分别进行校准。 我正在尝试使用 SAS 仅选择每个类别中频率大于或等于 10 的值。
最好先尝试选择一个值,然后再将其扩展到其他值。如果我将上述数据集称为“分类”,而我正在尝试创建的新数据集为“已校准”,那么我已经得到了:
data Calibrated;
set Categorised;
if Category="A" and Value= -1 then new = sum(Frequency);
run;
但这只会生成一个名为“新”的额外列,其中包含与“分类”数据集中 -1 值相同的频率条目。我应该如何进行?
【问题讨论】:
标签: sas