全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5514 3
2015-02-24
Item 41
Given the following macro program:
%macro MAKEPGM(NEWNAME, SETNAME, PRINT);
data &NEWNAME;
set &SETNAME;
run;
%if &PRINT=YES %then %do;
proc print data=&NEWNAME.(obs=10);
run ;
%end;
%mend;
Which option would provide feedback in the log about the parameter values passed into this macro when invoked?
A. MPRINT
B. MDEBUG
C. MLOGIC
D. MPARAM
答案是C。我怎么觉得是A呢?

Item 48
Given the following program and data:
data WORK.BDAYINFO;
infile datalines;
input Name $ Birthday : mmddyy10.;
datalines;
Alan 11/15/1950
Barb 08/23/1966
Carl 09/01/1963
;
run;
%let Want=23AUG1966;
proc print data=WORK.BDAYINFO;
[_insert_statement_]
run;
What is the WHERE statement that successfully completes the PROC PRINT and selects the observation for Barb?
A. where Birthday=&Want;
B. where Birthday=“&Want”;
C. where Birthday=“&Want”d;
D. where Birthday=‘&Want’d;
答案是C 日期加d不是应该单引吗? 应该是D才对? 为啥是C呢?

非常感谢!!!

二维码

扫码加我 拉你入群

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

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

全部回复
2015-2-24 02:26:28
自己顶一下。
第二道题 试了一下test code:
%let want=23AUG1966;
data test;
x="&want"d;
run;
proc print data=test;
run;
单引确实出错,双引确实就是正确的数值了。不知道为什么。
二维码

扫码加我 拉你入群

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

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

2017-1-10 05:10:56
同问  有人知道原因吗
二维码

扫码加我 拉你入群

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

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

2017-1-11 16:26:54
made 发表于 2017-1-10 05:10
同问  有人知道原因吗
一般语句中单引号跟双引号是没有差别的,可以互换使用。
在包含宏变量时,双引号中的宏变量会被替换,而单引号不会;
此处因为使用了&want,而且需要将其内容进行替换,则只能使用双引号。

开始的第一个问题,mprint是将整个macro中的code都会打印出来,而不是题目中的显示每个宏变量的取值的传递。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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