我有一个使用数组的数据集,如下所示:
data have;
set qty_wide;
by ID;
do=I to dim(qty)-1) to 1 by -1;
qty[i]=qty[i];
end;
run;
ID Date qty_1 qty_2 qty_3 qty_4 qty_5
1 10/01/23 1 0 0 0 0
1 11/01/23 0 1 0 0 0
1 12/01/23 0 0 1 0 0
1 01/01/23 0 0 0 1 0
..
还有另一个数据集,如下所示:-
ID Date amount
1 10/01/23 0.3
1 01/01/23 0.8
我已将“金额”列连接到第一个数据集。我想以某种方式将金额值添加到数组值中。
ID Date qty_1 qty_2 qty_3 qty_4 qty_5 amount
1 10/01/23 1.3 0 0 0 0 0.3
1 11/01/23 0 1 0 0 0 0
1 12/01/23 0 0 1 0 0 0
1 01/01/23 0 0 0 1.8 0 0.8
不确定数组与问题有什么关系。
如果要合并两个数据集,请先对它们进行排序。
示例:
data one;
input ID Date :mmddyy. qty_1-qty_5 ;
format date yymmdd10.;
cards;
1 10/01/23 1 0 0 0 0
1 11/01/23 0 1 0 0 0
1 12/01/23 0 0 1 0 0
1 01/01/23 0 0 0 1 0
;
data two;
input ID Date :mmddyy. amount;
format date yymmdd10.;
cards;
1 10/01/23 0.3
1 01/01/23 0.8
;
proc sort data=one;
by id date;
run;
proc sort data=two;
by id date;
run;
data want;
merge one two;
by id date;
run;
结果
ID Date qty_1 qty_2 qty_3 qty_4 qty_5 amount
1 2023-01-01 0 0 0 1 0 0.8
1 2023-10-01 1 0 0 0 0 0.3
1 2023-11-01 0 1 0 0 0 .
1 2023-12-01 0 0 1 0 0 .