全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2797 9
2013-01-22
%macro try;
        %do k=1 %to &color_num.;
        proc sql;
              select otd_percent into:color_ratio%left(&k.)
            from or.tm_color_forecast2 (where=(cal_date="30NOV2012"d and pack="3SE1" and color="&&color%left(&k.)"));
        %end;

      proc optmodel;         
          number m=&color_num.;
          number color_ratio{c in 1..m};
          var n;
          do n=1 to m; color_ratio[n]="&&color_ratio||n"; end;
      quit;  

%mend;
%try;

部分程序如上,不知道有什么办法能把之前的那个数组读入进去。我试了写成上面这种情况的时候,报错是说
ERROR 575-782: The expression type, a string, does not match target, a number.
但是如果写成
color_ratio[n]=&color_ratio||n;的话,就把&识别成了and;
不过直接这样写是可以的:color_ratio[1]=&color_ratio1;。
求指教,万分感激


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-1-22 12:18:48
"&&color_ratio||compress(n)";       try this.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-22 14:00:56
a6566792 发表于 2013-1-22 12:18
"&&color_ratio||compress(n)";       try this.
Thank you very much!

but log still shows
ERROR 575-782: The expression type, a string, does not match target, a number.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-22 14:08:58
color_ratio[n]="&&color_ratio&i"; end

试一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-22 14:12:11
Imasasor 发表于 2013-1-22 14:08
color_ratio[n]="&&color_ratio&i"; end

试一下
&i 这个i是在外面再定义的一个宏变量吗,因为在optmodel里面,用do i=1 to &m. 的话,不会自动形成宏变量呢……
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-22 14:20:30
艾北 发表于 2013-1-22 14:12
&i 这个i是在外面再定义的一个宏变量吗,因为在optmodel里面,用do i=1 to &m. 的话,不会自动形成宏变量 ...
哦,是的,那你做一个宏循环吧. 那样就可以了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群