Hi everyone,
I have a problem when I was developing an optimization model.
I have a data set in hand which has four columns: ID, frt_val, mid_val and bck_val, and I want to create another data set which is the parameters table for the optimization problem. The length of the parameters table can dynamically change based on number of &Vol. Suppose we set %let Vol = 8; how can I create a table which has &Vol + 1 columns (one for ID), such that the second column stores value of frt_val, the last column stores value of bck_val, and values from columns 3 to 7 are equivalent to mid_val?
Thank you a lot for your help!
YH Fung
As an example:
table 1:
ID frt_val mid_val bck_val
101 100 99 109
102 -10 20 -9
... ... ... ...
how can I create table 2 as following?
table 2:
ID vol1 vol2 vol3 vol4 vol5 vol6 vol7 vol8
101 100 99 99 99 99 99 99 109
102 -10 20 20 20 20 20 20 -9
... ... ... ... ... ... ... ... ...
Here's one way:
data want(keep=ID vol:);
set have;
array vol[&Vol];
vol1 = frt_val;
do j = 2 to &Vol-1;
vol
end;
vol&Vol = bck_val;
run;
Here's one way:
data want(keep=ID vol:);
set have;
array vol[&Vol];
vol1 = frt_val;
do j = 2 to &Vol-1;
vol
end;
vol&Vol = bck_val;
run;
Hi RobPratt,
It works! Thank you so much for your help!
YH Fung
Glad to help. Please mark this question Answered.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!