DATA Step, Macro, Functions and more

How to get data from e.g. an Excel file into a vector

Reply
New Contributor
Posts: 2

How to get data from e.g. an Excel file into a vector

How to get these example data from e.g. an Excel file (or ascii file):  

 

Var c1 c2

A     2    5

B     4    3

C     6    7

 

Into the vectors c1 and c2 in the below program.

Proc optmodel;

set box={"A","B","C"};

var Q{i in box} >=0;

 

number c1{i in box}=[2 4 6];

number c2{i in box}=[5 3 7];

 

etc. 

 

quit;

Super User
Posts: 10,611

Re: How to get data from e.g. an Excel file into a vector

Posted in reply to BjarneGjerde

Calling @RobPratt

SAS Employee
Posts: 538

Re: How to get data from e.g. an Excel file into a vector

Posted in reply to BjarneGjerde

First convert to a SAS data set, say indata, by using PROC IMPORT or a DATA _null_ step.  Then use the READ DATA statement:

Proc optmodel;
   set <str> box;
   var Q{box} >=0;
   number c1{box};
   number c2{box};
   read data indata into box=[Var] c1 c2;
   print c1 c2;
quit;

PROC OPTMODEL questions will get more immediate response in the Mathematical Optimization, Discrete-Event Simulation, and OR community.

New Contributor
Posts: 2

Re: How to get data from e.g. an Excel file into a vector

Thanks a lot!

But I do  not see how to get each line or Product (Var A, B, C) – into e.g. c1 {i in box}.  

 

Proc optmodel;

set box={"A","B","C"};

var Q{i in box} >=0;

number c1{i in box}=[2 4 6];

number c2{i in box}=[5 3 7];

SAS Employee
Posts: 538

Re: How to get data from e.g. an Excel file into a vector

[ Edited ]
Posted in reply to BjarneGjerde

The READ DATA statement populates box, c1, and c2 for you.  That way, you can solve a different instance of the same problem just by changing data sets without having to change your PROC OPTMODEL code.

Ask a Question
Discussion stats
  • 4 replies
  • 137 views
  • 0 likes
  • 3 in conversation