У меня есть набор данных:
data have;
input group $ value;
datalines;
A 4
A 3
A 2
A 1
B 1
C 1
D 2
D 1
E 1
F 1
G 2
G 1
H 1
;
run;
Первая переменная - это идентификатор группы, вторая - значение.
Для каждой группы я хочу новую переменную "sum" с сумма всех значений в столбце, кроме группы, в которой находится наблюдение.
Моя проблема заключается в том, чтобы сделать это на почти 30 миллионах наблюдений, поэтому эффективность имеет значение. Я обнаружил, что использование шага данных было более эффективным, чем использование procs.
Конечная база данных должна выглядеть следующим образом:
data want;
input group $ value $ sum;
datalines;
A 4 11
A 3 11
A 2 11
A 1 11
B 1 20
C 1 20
D 2 18
D 1 18
E 1 20
F 1 20
G 2 18
G 1 20
H 1 20
;
run;
Любая идея, как это сделать, пожалуйста?
Редактировать Я не знаю, имеет ли это значение, но приведенный мной пример - это упрощенная версия моей проблемы. В реальном случае у меня есть 2 другие групповые переменные, таким образом, беря сумму всего столбца и вычитая сумму в группе, это не является жизнеспособным решением.