Если я правильно понимаю, то, что вы пытаетесь сделать, - это запускать aggregate
с другой переменной разрыва каждый раз, добавляя агрегацию суммы к набору данных. Макрос может помочь перебрать переменные, но чего не хватает в вашем макросе, так это самого цикла. Попробуйте это:
Сначала просто создайте небольшой набор данных для демонстрации:
data list list/parcomm subcomm ccs prov data (5f2).
begin data
1 2 3 4 25
3 2 3 2 33
1 2 3 2 42
4 1 4 1 66
end data.
Теперь следующий макрос перебирает список переменных в вызове макроса и запускает aggregate
для каждого изих:
DEFINE myvars (arg=!cmdend).
!do !vr !in(!arg)
aggregate
/OUTFILE=* MODE=ADDVARIABLES
/BREAK=!vr
/!concat("sum_",!vr) = sum(data).
!doend
!ENDDEFINE.
myvars arg=parcomm subcomm ccs prov.