立即打开
Given the SAS data set SASUSER.HIGHWAY:
Steering Seatbelt Speed Status Count
-------- -------- ----- ------- -----
absent No 0-29 serious 31
absent No 0-29 not 1419
absent No 30-49 serious 191
absent no 30-49 not 2004
absent no 50+ serious 216
The following SAS program is submitted:
proc sql noprint;
select distinct
Speed [_insert_SQL_clause_]
from SASUSER.HIGHWAY
;
quit;
title1 "Speed values represented are: &GROUPS";
proc print data=SASUSER.HIGHWAY;
run;
Which SQL clause stores the text 0-29,30-49,50+ in
the macro variable GROUPS?
A.into &GROUPS
B.into :GROUPS
C.into :GROUPS separated by ','
D.into &GROUPS separated by ','
本文属于博客: http://crackman.net/ 版权归作者所有,欢迎转载!如有转载,请务必注明出处!未经本文作者同意不得用于商业应用。
此题考察的是SQL与宏的结合。
用SQL语句产生宏变量,语法结构如下:
PROC SQL NOPRINT;
SELECT column1<,column2,...>
INTO :macro-variable-1<,:macro-variable-2,...>
FROM table-1 | view-1
<WHERE expression>
<other clauses>;
QUIT;
下面这个语法结构是将一变量的多个值组合在一个宏变量里面,例如:
General form, SELECT statement with INTO clause for combining values into one macro variable:
PROC SQL NOPRINT;
SELECT column1
INTO :macro-variable-1
SEPARATED BY ‘delimiter1’
FROM table-1 | view-1
<WHERE expression>
<other clauses>;
QUIT;
回头看看题目的要求:如何将这个文本“ 0-29,30-49,50+”放在一个宏变量&GROUPS中?
显然是采用第二个语法结构。
答案为C。
示例程序:
data crackman;
input Steering $ Seatbelt $ Speed $ Status $ Count@;
datalines;
absent No 0-29 serious 31
absent No 0-29 not 1419
absent No 30-49 serious 191
absent no 30-49 not 2004
absent no 50+ serious 216
;
run;
proc sql;
select distinct speed into:groups separated by ',' from crackman;
quit;
%put _all_;
大家可以思考一些,这里创建的宏变量是全局宏变量还是局部宏变量,这两者之间的差别是什么?
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
栏目导航
热门文章
推荐文章
扫码加好友,拉您进群