将数据集读入 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
其中 zip 和 district 变量格式为字符,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。
我有一个名为 zip5size 的数据集,如下所示:
zip district volume
22123 springfield 1234
10001 new york 567
20001 dc 8910
20005 dc 1112
10005 new york 1314
其中 zip 和 district 变量格式为字符,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。