全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6834 7
2013-05-15
是这样我需要把一个macro里面的input  FullList(形式为x1 x2 x3 x4)改为 x1^=. and x2^=. and x3^=. and x4 ^=.

于是我先写了个把前者转换为后者形式的code
%macro convertA(pound);
%let newlist2=%qsysfunc(scan(&pound,1,%str( )))^=.;
%let i=2;
%do  %while (%qsysfunc(scan(&pound,&i,%str( )))^= ) ;
%let newlist2=&newlist2 and %qsysfunc(scan(&pound,&i,%str( )))^=. ;
%let i=%eval(&i+1);
%end;
&newlist2
%mend convertA;

然后在后面的macro里的where里把它加上去
%let c=%convertA(&FullList);where %eval(c);这样写就不能work 不知道怎样才能让这个形式达到 where x1^=. and x2^=. and x3^=. and x4 ^=. ; 同样的效果谢谢大家了!!!!!!


二维码

扫码加我 拉你入群

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

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

全部回复
2013-5-15 10:28:20
不要老是想到使用宏。
复制代码
二维码

扫码加我 拉你入群

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

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

2013-5-15 10:32:29
where not (x1=. or x2=. or x3=. or x4=.)

这样也行啊,就是对整个逻辑表达式做非运算
然后你要做的就是把原宏变量的and改成or

当然楼上的方法最好了,你这个纯属折腾,呵呵
二维码

扫码加我 拉你入群

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

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

2013-5-21 04:09:07
zhengbo8 发表于 2013-5-15 10:28
不要老是想到使用宏。
谢谢 T T
二维码

扫码加我 拉你入群

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

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

2013-5-21 04:09:32
playmore 发表于 2013-5-15 10:32
where not (x1=. or x2=. or x3=. or x4=.)

这样也行啊,就是对整个逻辑表达式做非运算
确实是折腾
谢谢了 T T
二维码

扫码加我 拉你入群

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

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

2013-5-27 17:19:38
zhengbo8 发表于 2013-5-15 10:28
不要老是想到使用宏。
复制代码
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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