全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2714 3
2007-04-25

data two;

y='2';

run;

%let x=10;

%let var=y;

data one;

set two (keep=&var);

z=&var*&x;

run;

which one of the following is the value of the variable Z when the progeam finishes execution?

A.ERROR

B.20(as a numeric)

C.20(as a character)

D. .(missing numeric)

Answer: B

我只晓得macro variable 应该都是character, 但是macro variable进行运算时会自动从character transfer to numeric?

请高手帮忙解读为什么答案是B.3xxxx

二维码

扫码加我 拉你入群

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

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

全部回复
2007-4-25 16:13:00
这跟宏变量没有关系。SAS系统会自动将算术表达式中的字符变量转换为数值变量。
二维码

扫码加我 拉你入群

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

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

2007-4-25 18:46:00

同意

上楼看法

二维码

扫码加我 拉你入群

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

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

2007-4-27 20:28:00

z=&var*&x这句语句中,var所代表的y被默认转为数值型变量,这是系统默认的。

但本人认为最好是由用户自己转换,免得由于疏忽而发生一些意外情况。

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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