将数据集读入 Proc Optmodel

Reading in Datasets to Proc Optmodel

我有一个名为 zip5size 的数据集,如下所示:

zip    district     volume  
22123  springfield  1234
10001  new york     567
20001  dc           8910
20005  dc           1112
10005  new york     1314

其中 zipdistrict 变量格式为字符,volume 变量为格式为数字。

我正在尝试将数据读入我的 proc optmodel 代码,如下所示:

proc optmodel;
  set <str> zips;
  set <str> districts;
  num volume;
  read data zip5size into zips=[zip] districts=[district] volume=volume;
quit;

我收到以下错误:

The target 'districts' must be numeric or string, found a set.

为什么 SAS 在设置 zip 和从我的数据集中读取 zip 变量时没有问题,但在设置分区和从我的数据集中读取分区变量时却有问题?

proc optmodel中,set是索引集。例如:

data dat; 
   input zip $ district $ volume;
datalines;
22123  springfield  1234
10001  new york      567
20001  dc           8910
20005  dc           1112
10005  new york     1314
;

proc optmodel;
  set <str> model_zips;
  set <str> model_dist;
  num vol_zips{model_zips};
  num vol_dist{model_dist};
  read data dat into model_zips=[zip] vol_zips=volume;
  read data dat into model_dist=[district] vol_dist=volume;
  print vol_zips;
  print vol_dist;
quit; 

会将您的模型添加到按邮政编码和地区索引的数组中。这是关于如何对 1D 和 2D 变量建模的good tutorial