如何将列添加到数组 SAS

问题描述 投票:0回答:1

我有一个使用数组的数据集,如下所示:

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
sas
1个回答
0
投票

不确定数组与问题有什么关系。

如果要合并两个数据集,请先对它们进行排序。

示例:

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         .
© www.soinside.com 2019 - 2024. All rights reserved.