例如,数据集a是
id x
1 15
2 25
3 35
4 45
我想在数据集a中添加一列y,y是不包括当前id的x的平均值。 所以y_1 =(x_2 + x_3 + x_4)/ 3 =(25 + 35 + 45)/ 3.
答案 0 :(得分:6)
在没有SQL的情况下最简单的方法是在每行中添加均值和n(使用PROC MEANS,然后合并值),然后使用math删除当前值。 IE,如果x_mean =(15 + 25 + 35 + 45)/ 4 = 30,x = 15,那么
x_mean_others = ((30*4)-15)/(4-1) = 105/3 = 35
或者,在SQL中,您可以使用相同的想法动态计算它。
proc sql;
create table want as
select x, (mean(x)*n(x) - x)/(n(x)-1) as y
from have H
;
quit;
这利用了SAS的自动重新合并功能,在像SQL Server这样的东西中,你需要一个WITH
子句来完成我想象的工作。