Предполагая, что структуры данных абсолютно одинаковы и что оба набора данных имеют одинаковое количество наблюдений в одинаковом относительном порядке, вы могли бы сделать это.
В основном скопируйте данные из первого набора данных во временный массив, а затем прочитайте данные из второго набора данных и выполните вычитание.
data want;
array _temp [1000] _temporary_ ;
set data1 ;
array _x _numeric_;
do _n_=1 to dim(_x);
_temp[_n_]=_x[_n_];
end;
set data2 ;
do _n_=1 to dim(_x);
_x[_n_] =_temp[_n_]-_x[_n_];
end;
run;
Убедитесь, что размер временного массива достаточно велик. Создание слишком большого размера ничего не повредит.
Вы можете изменить список переменных _numeric_
на более конкретный список переменных, если вы не хотите вычислять разницу для всех числовых полей. Любая переменная, не включенная в массив, будет иметь значения, прочитанные из второго набора данных.