由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教SAS ADV 50 中的一道简单macro题目
相关主题
求教sas adv题目请问SAS advanced macro global 和local
问一个SAS macro的问题SAS ADVANCED 一道题求助
请教一个SAS题目请教一道SAS maro的题
为什么这两个Macro给出结果不一样哪?Stupid SAS programming style is driving me crazy....
请教一个SAS ADV 的题目Need advice on SAS macro debugging
A problem from SAS Adv test一道ADV 130 题目
求助,SAS ADV 130 中94sas题目恳请前辈指点!!
请问SAS ADV 130中74 和80题SAS PROC MODEL中变量赋值,请大侠解答~急等,谢谢!
相关话题的讨论汇总
话题: sas话题: macro话题: mv话题: animal话题: adv
进入Statistics版参与讨论
1 (共1页)
l******h
发帖数: 855
1
%let a = cat;
%macro animal;
%let a = dog;
%mend;
%animal
%put a is &a;
答案是D: a is dog
为什么不是C: a is cat
当然我在SAS上运行过了,确实是D, 可是我的local 和global 宏变量老是搞不清楚呀
~
G********r
发帖数: 3161
2
唉哟,这位大哥大姐,这不是明摆着么:有两个%let语句,第二个在Macro里面的把外
面的那个给覆盖了呀。
l******h
发帖数: 855
3
谢你啊,这位大哥大姐, 这不是明白着么,我local和globel 没学好

【在 G********r 的大作中提到】
: 唉哟,这位大哥大姐,这不是明摆着么:有两个%let语句,第二个在Macro里面的把外
: 面的那个给覆盖了呀。

l******h
发帖数: 855
4
另外,SAS ADV中的第39题:
%let mv = shoes;
%macro product (mv = bicycles);
%let mv = clothes;
%mend;
%product(mv = tents)
%put mv is &mv;
却为什么又是shoes 了呢?
y**x
发帖数: 117
5

当运行%animal中 %let a = dog;SAS现在animal的local中找a, 没有后又去global中去
找,有a, 于是就把global的a赋值dog.

【在 l******h 的大作中提到】
: %let a = cat;
: %macro animal;
: %let a = dog;
: %mend;
: %animal
: %put a is &a;
: 答案是D: a is dog
: 为什么不是C: a is cat
: 当然我在SAS上运行过了,确实是D, 可是我的local 和global 宏变量老是搞不清楚呀
: ~

y**x
发帖数: 117
6
注意mv是宏的参数。对于宏中的参数,sas总是会创建local表把这些参数声明在里面。
当运行到%let mv = clothes;犹豫local中有mv,所以就改变了local中mv的值。宏运行
结束后,local消失,global中的mv不受影响,依然是shoes.

【在 l******h 的大作中提到】
: 另外,SAS ADV中的第39题:
: %let mv = shoes;
: %macro product (mv = bicycles);
: %let mv = clothes;
: %mend;
: %product(mv = tents)
: %put mv is &mv;
: 却为什么又是shoes 了呢?

l******h
发帖数: 855
7
才注意到你是刚刚也通过ADV的同学,恭喜呀~

【在 y**x 的大作中提到】
: 注意mv是宏的参数。对于宏中的参数,sas总是会创建local表把这些参数声明在里面。
: 当运行到%let mv = clothes;犹豫local中有mv,所以就改变了local中mv的值。宏运行
: 结束后,local消失,global中的mv不受影响,依然是shoes.

g**u
发帖数: 205
8
原来如此。
因为% macro animal时没有提到define animal(a),所以a是独立的macro variable。

【在 y**x 的大作中提到】
: 注意mv是宏的参数。对于宏中的参数,sas总是会创建local表把这些参数声明在里面。
: 当运行到%let mv = clothes;犹豫local中有mv,所以就改变了local中mv的值。宏运行
: 结束后,local消失,global中的mv不受影响,依然是shoes.

1 (共1页)
进入Statistics版参与讨论
相关主题
SAS PROC MODEL中变量赋值,请大侠解答~急等,谢谢!请教一个SAS ADV 的题目
再请教一道SAS ADVA problem from SAS Adv test
请问一道SAS ADV中的题目求助,SAS ADV 130 中94
请教一个SAS Macro问题。谢谢请问SAS ADV 130中74 和80题
求教sas adv题目请问SAS advanced macro global 和local
问一个SAS macro的问题SAS ADVANCED 一道题求助
请教一个SAS题目请教一道SAS maro的题
为什么这两个Macro给出结果不一样哪?Stupid SAS programming style is driving me crazy....
相关话题的讨论汇总
话题: sas话题: macro话题: mv话题: animal话题: adv