全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4021 4
2010-04-29
我现在编了一段宏函数,然后想调用宏函数,结果老是出错~求高手指教。
%macro sort;
proc sql;
select dcode,state,province
,AVG(A1) AS CSIA01     /*A1平均值*/
,AVG(A2) AS CSIA02     /*A2平均值*/
,AVG(A3) AS CSIA03     /*A3平均值*/
,AVG(B1) AS CSIB01     /*B1平均值*/
,AVG(B2) AS CSIB02     /*B2平均值*/
,AVG(B3) AS CSIB03     /*B3平均值*/
,AVG(C1) AS CSIC01     /*C1平均值*/
,AVG(C2) AS CSIC02     /*C2平均值*/
,AVG(C3) AS CSIC03     /*C3平均值*/
,AVG(C4) AS CSIC04     /*C4平均值*/
,AVG(D1) AS CSID01     /*D1平均值*/
,AVG(D2) AS CSID02     /*D2平均值*/
,AVG(D3) AS CSID03     /*D3平均值*/
,AVG(E1) AS CSIE01     /*E1平均值*/
,AVG(E2) AS CSIE02     /*E2平均值*/
,AVG(E3) AS CSIE03     /*E3平均值*/
,CSIA01*0.315+CSIA02*0.282+CSIA03*0.403 AS CSIA00        /*A1-A3加权平均*/
,CSIB01*0.294+CSIB02*0.340+CSIB03*0.366 AS CSIB00        /*B1-B3加权平均*/
,CSIC01*0.209+CSIC02*0.189+CSIC03*243+CSIC04*0.358 AS CSIC00             /*C1-C4加权平均*/
,CSID01*0.322+CSID02*0.312+CSID03*0.367 AS CSID00                        /*D1-D3加权平均*/
,CSIE01*0.288+CSIE02*0.336+CSIE03*0.376 AS CSIE00                        /*E1-E3加权平均*/
from lib.qirui2010csi
GROUP BY dcode,state,province;
quit;
%mend;

proc sql;
SELECT %sort  FROM merge1
WHERE state="西南";
quit;
错误老是显示:
1      proc sql;
            ---
            79
ERROR 79-322: 期望‘FROM’。
ERROR: 以下这些列在起作用的表中没有找到: CSIA01, CSIA02, CSIA03, CSIB01, CSIB02, CSIB03, CSIC01, CSIC02,
       CSIC03, CSIC04, CSID01, CSID02, CSID03, CSIE01, CSIE02, CSIE03, dcode, province, state.
难道我必须先设定这些变量?求高手帮忙~~~
二维码

扫码加我 拉你入群

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

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

全部回复
2010-4-29 17:32:56
你这个宏程序错误太多了
第一个就是你的计算变量在第二次计算的时候要加CALCULATED
你引用宏的方式都是错误的
二维码

扫码加我 拉你入群

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

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

2010-4-29 17:37:51
2# crackman
引用宏错误?不是%sort么?求大侠你指教改进~~~
二维码

扫码加我 拉你入群

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

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

2010-4-29 20:48:05
3# zhanxu

macro解析之后的code类似于:

proc sql;
proc sql;
select .....from **group by ***; from merge1 where = '**';
quit;

失去你所以为的逻辑,显然是错误的。我觉得没有必要用宏
二维码

扫码加我 拉你入群

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

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

2010-5-1 14:45:06
4# jingju11
那用什么啊~求指教~~
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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