最有效的方法来做SAS中列之间的差异

The most efficient way to do the differences between the columns in SAS

我有一个如下所示的 SAS 数据集。我想将第一列值用作被减数,即第 2 列 - 第 1 列、第 3 列 - 第 1 列、第 4 列 - 第 1 列......在 SAS 中执行此差异的最有效方法是什么?使用数组还是循环?

hotelID   expense1  expense2  expense3  expense4  expense5
1         41241     56234     45124     12551     74245
2         31232     45213     51411     67432     23523
3         75463     14352     74214     51541     25236
4         95324     21451     73423     15215     56432
5         12445     64622     12156     52442     52351
6         43542     24141     62532     63255     78454
7         12625     14525     45235     15351     15364

像下面那样使用 arrays

data _NULL_;
set test;
array all{*} expense2-expense5;
array diff{*} diff_exp2-diff_exp5;
do i=1 to dim(all);
diff[i]= expense1 - all{i};
end;
put _ALL_;
run;