有没有办法以Select Cases If
语法包含整个变量的平均值?
我有一个数据集,其中三个组每个n = 20(将变量grp的值分别为1、2或3排序),以及评估前后的结果(评估前后的变量)。我只想为每个组选择pre值高于组中该值的平均值的10种情况。
使用伪代码:
select if pre-value > mean(grp)
因此,如果组1中的平均值为15,则应将其与组1中所有值进行比较。但是同时,如果第2组的平均值为20,则应该将第2组案例的值与之进行比较。
现在,我只在Select Cases If窗口中看到MEAN(arg1,arg2,...)函数,但无法获得整个变量的均值,而在附加条件下(如组)则少得多。
是否可以使用Select Cases If语法执行此操作?
答案 0 :(得分:1)
您需要创建一个包含该组平均值的新变量(因此,每个组中的所有行在该变量中都具有相同的值-组平均值)。然后,您可以将每一行与此值进行比较。
首先,我将创建一些示例数据进行演示:
data list list/grp pre_value .
begin data
1 3
1 6
1 8
2 1
2 4
2 9
3 55
3 43
3 76
end data.
现在您可以计算组平均值并选择:
AGGREGATE /OUTFILE=* MODE=ADDVARIABLES /BREAK=grp /GrpMean=MEAN(pre_value).
select if pre_value > GrpMean.
。