Loops SAS:计算不包括当前观测值的平均值

Loops SAS:计算不包括当前观测值的平均值,loops,sas,average,Loops,Sas,Average,我正在寻找一种优雅的方法(或者,如果没有,是一种不优雅的方法)来计算不包括当前记录的平均值。所以,如果我有30个观察结果,我会得到30个不同的平均值。每个都是其他29个值的平均值 根据这些合成的数据,我想创建5个新的观测值,平均值为A、B和C,不包括它们自己的数据 A B C Albert 12 4 6 Bob 14 7 12 Clyde 6 7 11 Dennis 9 11 7 Earl 8 8 6 我有一个模糊

我正在寻找一种优雅的方法(或者,如果没有,是一种不优雅的方法)来计算不包括当前记录的平均值。所以,如果我有30个观察结果,我会得到30个不同的平均值。每个都是其他29个值的平均值

根据这些合成的数据,我想创建5个新的观测值,平均值为A、B和C,不包括它们自己的数据

        A   B   C
Albert  12  4   6
Bob     14  7   12
Clyde   6   7   11
Dennis  9   11  7
Earl    8   8   6

我有一个模糊的想法,这将涉及循环中的procsql。其他想法或方法也很受欢迎。

无需循环。使用SQL获取每个变量的总计。无当前观测值的平均值为(总和值)/(n-1)


谢谢你。我觉得有一个简单的方法可以解决这个问题。
data test;
input NAME $ A   B   C;
datalines;
Albert  12  4   6
Bob     14  7   12
Clyde   6   7   11
Dennis  9   11  7
Earl    8   8   6
;
run;

proc sql noprint;
select count(*),
       sum(A),
       sum(B),
       sum(C)
    into :n,
         :a,
         :b,
         :c
    from test;
quit;

data test2;
set test;
Ave_A = (&a - a)/(&n-1);
Ave_B = (&b - b)/(&n-1);
Ave_C = (&c - c)/(&n-1);
run;