全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1502 0
2016-05-26
如题,没有理解retain是非执行语句。求指导~


54.Consider the following data step:

data WORK.TEST;
    set SASHELP.CLASS(obs=5);
    retain City \’Beverly Hills\';
    State=\’California\';
run;

The computed variables City and State have their values assigned using two different methods, a RETAIN statement and an Assignment statement. Which statement regarding this program is true?
    A. The RETAIN statement is fine, but the value of City will be truncated to 8
bytes as the LENGTH statement has been omitted.
     B. Both the RETAIN and assignment statement are being used to initialize new
variables and are equally efficient. Method used is a matter of programmer preference.
     C. The assignment statement is fine, but the value of City will be truncated
to 8 bytes as the LENGTH statement has been omitted.
     D. City\’s value will be assigned one time, State\’s value 5 times.
Answer: D

其实这里考察的RETAIN到底是在非执行语句还是执行语句。
RETAIN的作用是初始化变量为“特定的默认值”,是非执行语句,在编译过程中,PDV中用“特定的默认值”替代SAS系统默认值。在DATA步中,加入STATE进入PDV中,STATE=\’California\'; 是赋值语句,也就是执行语句。每一次从SASHELP.CLASS读取数据之后,都要执行一次赋值语句。

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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