我有一个名为 zip5size 的数据集,如下所示:
zip district volume
22123 springfield 1234
10001 new york 567
20001 dc 8910
20005 dc 1112
10005 new york 1314
zip 和区变量的格式为字符, volume 变量的格式为数字。
我正在尝试将数据读入我的proc optmodel代码,如下所示:
proc optmodel;
set <str> zips;
set <str> districts;
num volume;
read data zip5size into zips=[zip] districts=[district] volume=volume;
quit;
我收到以下错误:
目标'区'必须是数字或字符串,找到一组。
为什么SAS在设置拉链和从我的数据集中读取zip变量时没有问题,但它在设置区域和从我的数据集读取分区变量时有问题?
答案 0 :(得分:1)
在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。