楼主: zorro2004
1288 4

[问答] 请教一个关于宏变量的问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

35%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
2.8501
学术水平
1 点
热心指数
6 点
信用等级
0 点
经验
2259 点
帖子
77
精华
0
在线时间
118 小时
注册时间
2012-4-16
最后登录
2024-12-9

楼主
zorro2004 发表于 2017-11-13 16:54:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
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;

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

非常感谢!

二维码

扫码加我 拉你入群

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

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

关键词:proc sql Select output RETAIN Lorenz

已有 1 人评分学术水平 热心指数 收起 理由
eijuhz + 1 + 1 鼓励积极发帖讨论

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

沙发
mathkkk 学生认证  发表于 2017-11-14 09:09:56
这个不是宏,只是储存观测值总数的临时变量。

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

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

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-14 08:19