全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4632 2
2012-08-25
目的是为了判断宏变量ds有没有点号(".“)
宏中使用语句为:
%if %sysfunc(find("&ds.","."))=0 %then %do;
但是无论ds="a"还是"work.a",这个条件竟然都成立。
故做以下例子:一个得到的是5,另一个得到的是0。原因应该是%sysfunc的问题,请问如何修改?
data temp;
a=(find("work.a","."));
run;
%let a=%sysfunc(find("work.a","."));
%put &a.;
二维码

扫码加我 拉你入群

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

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

全部回复
2012-8-25 15:33:30
然后我试了几种情况,得到的值分别如下,这让我很困惑,加了%sysfunc之后函数的语法要求就不一样了,而这种不一样的规律是什么?

%let ds=work.a;
%let a=%sysfunc(find("&ds".,"."));%put &a.;
0
%let a=%sysfunc(find("&ds.",.));%put &a.;
6
%let a=%sysfunc(find(&ds.,"."));%put &a.;
0
%let a=%sysfunc(find(&ds.,.));%put &a.;
5
二维码

扫码加我 拉你入群

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

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

2012-8-26 02:19:40
moyunzheng 发表于 2012-8-25 15:33
然后我试了几种情况,得到的值分别如下,这让我很困惑,加了%sysfunc之后函数的语法要求就不一样了,而这种不 ...
There is no quote needed here.

10   %let a=%sysfunc(find(work.a,.));
11   %put >>>&a.<<<;
>>>5<<<
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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