全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1248 4
2017-11-13
proc sql noprint;
select sum(gb) into:nresp from test1;
select count(*) into:nn from test1;
quit;

data lorenz;
set test1 nobs=nn;
by p;
retain tile 1 totresp 0;
tile_size=ceil(nn/100);
totresp=totresp+gb;
totrespper=totresp/&nresp;
if _n_=tile*tile_size then do;
output;
if tile<100 then do;
tile=tile+1;
end;
end;
keep tile totrespper;
run;

网上看到的一段代码,其中标红部分不理解,为什么宏变量可以不加&直接引用
请大神帮忙解惑

非常感谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2017-11-14 09:09:56
这个不是宏,只是储存观测值总数的临时变量。
二维码

扫码加我 拉你入群

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

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

2017-11-15 11:05:25
mathkkk 发表于 2017-11-14 09:09
这个不是宏,只是储存观测值总数的临时变量。
你好,是因为在sql中使用了count(*)的原因吗
二维码

扫码加我 拉你入群

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

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

2017-11-16 09:21:34
zorro2004 发表于 2017-11-15 11:05
你好,是因为在sql中使用了count(*)的原因吗
SQL里创建宏变量nn,但是下面与这无关。你可以在SAS帮助文档里好好了解下data步中nobs= 的用法。
二维码

扫码加我 拉你入群

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

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

2017-11-16 17:02:09
mathkkk 发表于 2017-11-16 09:21
SQL里创建宏变量nn,但是下面与这无关。你可以在SAS帮助文档里好好了解下data步中nobs= 的用法。
好的,谢谢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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