楼主: caijiangyao1991
1716 2

SAS adv [推广有奖]

  • 0关注
  • 0粉丝

大专生

26%

还不是VIP/贵宾

-

威望
0
论坛币
2866 个
通用积分
0
学术水平
3 点
热心指数
3 点
信用等级
3 点
经验
293 点
帖子
21
精华
0
在线时间
50 小时
注册时间
2013-7-10
最后登录
2020-11-11

楼主
caijiangyao1991 发表于 2016-6-15 21:00:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
sas adv 130题中的第80题,用程序跑了下,确实是rc取值为low,但我不明白为什么,明明totalobs是大于10的呢,不应该是high吗?求大神指点!!
data prosale;
input sale;
datalines;
1
2
4
6
7
8
8
5
4
4
4
4
4
4
5
;
run;
%let rc=begin;
%macro test;
data out;
set prosale nobs=totalobs;
if totalobs>10 then do;
%let rc=high;
end;
else do;
%let rc=low;
end;
run;
%put rc=&rc;
%mend;
%let rc=before execution;
%test

二维码

扫码加我 拉你入群

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

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

关键词:EXECUTION Before Total Input Lines execution before 程序

沙发
狮子yanyang 发表于 2016-6-16 17:11:32
%let 语句属于宏语句,sas总是先执行宏语句,也就是说运行%test的时候,先运行%let rc=high, %let rc=low,%put rc=&rc。  然后运行data out;
set prosale nobs=totalobs;
if totalobs>10 then do;
end;
else do;
end;
run;

藤椅
caijiangyao1991 发表于 2016-6-16 19:54:20
狮子yanyang 发表于 2016-6-16 17:11
%let 语句属于宏语句,sas总是先执行宏语句,也就是说运行%test的时候,先运行%let rc=high, %let rc=low, ...
啊 这样啊,%test不是也是宏么

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

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