全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2629 6
2016-04-20
大家好,
有一道在advanced 130里的题不懂,求大神解答。题目是130-v2 的第80题, 如下:

80. The following SAS program is submitted:

%let rc = Begin;

%macro test;

  data out;

  set sashelp.prdsale nobs = totalobs;

  if totalobs > 10 then do;

    %let rc = high;

     end;

  else do;

    %let rc = low;

  end;

  run;

%mend;

%let rc = Before Execution;

%test


The data set SASHELP.PRDSALE has 50 observations. What is the value of the variable RC when the macro finishes execution?

A.low

B.high

C.Begin

D.Before Execution



答案是a,我也跑的程序的确是a。
请大神指教!
感谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-4-20 05:54:34
自己顶一个!
二维码

扫码加我 拉你入群

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

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

2016-4-21 07:33:10
http://support.sas.com/resources/papers/proceedings10/028-2010.pdf
这篇文章里有解释
二维码

扫码加我 拉你入群

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

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

2016-4-21 15:17:49
macro里是%let在做赋值,就可以不看data步语句,macro只是做了两个%let而已
二维码

扫码加我 拉你入群

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

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

2016-4-25 07:48:52
xtang60 发表于 2016-4-21 07:33
http://support.sas.com/resources/papers/proceedings10/028-2010.pdf
这篇文章里有解释
找到原因了!这篇文章很赞!多谢!
二维码

扫码加我 拉你入群

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

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

2016-4-25 07:52:26
LZ自己顶一个!楼上的同学发的那篇文章解释的很好! 具体解释在7-8页的那个example里面。有同样问题的小伙伴们可以仔细看看就明白啦!

自己一直纠结为何是A而不是B。原因是因为macro(&let这种 statement)都在macro processor里处理了。而这一切都在data step真正compile之前发生了。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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