|
楼主
楼主 |
发表于 2004-5-21 10:12:26
|
只看该作者
为什么引用宏变量得不到预期结果?
问题如下:
1、我想从hgdm数据集中产生宏变量 hgdm , d_num, hgdm 与d_num 是一一对应的。
2、然后利用产生的宏变量对jyjl数据集进行计算收益,hgdm='200001'时,计算收益return时d_num取 1,其他类似。
3、我用了symget 读取symput产生的宏变量,为什么得不到结果呢?
[code:bd978]data jyjl;
input jrzq $ zqdm $ cjjg cjsl hglx $;
cards;
20030601 200001 2.1 4000 rqhg
20030601 200001 2.2 2000 rzhg
20030602 200001 2.1 4000 rqgh
20030602 200001 2.2 2000 rzgh
;
run;
data hgdm;
input zqdm $ num;
call symput('hgdm',trim(left(zqdm)));
call symput('day_num'||zqdm,put(num,8.));
cards;
200001 1
200003 3
200007 7
200010 14
;
data return;
set jyjl;
retain total;
if zqdm ="&hgdm" then /* zqdm与宏变量hgdm相等时,宏变量d_num取num的值1计算收益; */
do;
if hglx= 'rqhg' then
do;
return =(symget('d_num'||zqdm))/360*cjjg*cjsl;
total = sum(total,return);
end;
if hglx= 'rzhg' then
do;
return = -(symget('d_num'||zqdm))/360*cjjg*cjsl;
total = sum(total,return);
end;
else total = total;
end;
run; [/code:bd978]
困惑中~~ |
|