楼主: 冰棱
13341 9

SAS宏引用关于&&的问题 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
344 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1995 点
帖子
107
精华
0
在线时间
118 小时
注册时间
2006-2-27
最后登录
2018-6-15

楼主
冰棱 发表于 2014-11-7 14:00:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
先来点前戏,润滑润滑,例如:
%let mvar=here;
%let x=10;
%let here10=yousee;
%let mvar10=kcuf;


/*试做如下测试:*/
%put &mvar.&x;/*log 显示:here10*/

%put &mvar&x;/*显示here10*/


由此可见,在连续引用两个宏时,加不加点都无所谓的。但为了看到底有啥不同,我们加一个&

%put &&mvar&x;/显示为 kcuf
看来多个宏连在一起时,是从右往左赋值的~这个吊

%put &&mvar.&x;/显示为 here10
我操有戏,就是想得到here10的内容;

%put &&&mvar.&x;/显示为:yousee

到此为止了,总结一下.
如果想让两个文本直接连在一起,那就用两个&不用.
如果想得到的宏变量本身是有两个宏变量连在一起的,那就必须用&&&.&的形式再者&&.&的结果跟&.&的结果一样是怎么回事?
但再加一个&就不一样了?

我擦,似乎也没总结出什么东西.各位看官可有其它见解?



二维码

扫码加我 拉你入群

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

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

关键词:SAS宏 HERE MVA VaR put 先来

已有 1 人评分经验 收起 理由
eijuhz + 40 精彩帖子

总评分: 经验 + 40   查看全部评分

沙发
冰棱 发表于 2014-11-7 14:04:52
在实际运用当中,很多情况是需要用组合的宏变量,这下有救了!

藤椅
teqel 发表于 2014-11-8 13:09:52
&&mvar&x    -> &mvar10  -> kcuf
&&mvar.&x   -> &mvar.10 -> here10
&&&mvar.&x -> &here10   -> yousee (其中&&变成&,&mvar.变成here,&x变成10)
已有 1 人评分经验 收起 理由
eijuhz + 40 精彩帖子

总评分: 经验 + 40   查看全部评分

板凳
冰棱 发表于 2014-11-9 14:38:36
teqel 发表于 2014-11-8 13:09
&&mvar&x    -> &mvar10  -> kcuf
&&mvar.&x   -> &mvar.10 -> here10
&&&mvar.&x -> &here10   -> youse ...
是这么解析的!

报纸
13zl34 发表于 2014-12-31 07:36:48
冰棱 发表于 2014-11-9 14:38
是这么解析的!
感谢楼主的分享。感觉这里还是有些搞不懂,比如如何读取kcuf10
有应该怎么写呢?似乎到了第二重就无法继续了,而且无法用括号,这个太假了

地板
冰棱 发表于 2015-1-12 16:12:37
13zl34 发表于 2014-12-31 07:36
感谢楼主的分享。感觉这里还是有些搞不懂,比如如何读取kcuf10
有应该怎么写呢?似乎到了第二重就无法继 ...
先来点前戏,润滑润滑,例如:
%let mvar=here;
%let x=10;
%let here10=yousee;
%let mvar10=kcuf;

&mvar10.10即可。我一定是好久没上了

7
henry_l 发表于 2015-3-16 11:44:53
赞赞赞

8
何必不淡定。 发表于 2015-3-19 11:22:21
愚见:
1:&mvar&x =&mvar.&x    .为宏变量结束符 两个宏变量分别解析
2:&&mvar&x  &&解析为&,mvar无法解析,跳过,解析&x,最后再解析&mvar10
3:&&mvar.&x &&解析为&,.起宏变量结束符作用,所以两个宏变量分别解析,效果等同于1
4:&&&mvar&x &&解析为&,&mvar和&x分别解析,最后再解析两者解析出来的值
5:&&&mvar.&x &&解析为&, &mvar和&x分别解析,.并不影响其分别解析,故=4
已有 2 人评分经验 论坛币 收起 理由
eijuhz + 40 精彩帖子
pobel + 5 精彩帖子

总评分: 经验 + 40  论坛币 + 5   查看全部评分

9
bitcoin 发表于 2015-4-27 15:07:46
感谢楼主分享!正头疼这个问题

10
ylwtsmt2008 发表于 2017-8-3 01:49:07 来自手机
用&的个数分辨层级,2个&变1个&(不进行替换),3个&变1个&,4个&变2个&(不进行替换),5个&变2个&,6个&变3个&(不进行替换),7个&变3个&,8个&变4个&(不进行替换),以此类推

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-20 00:58