楼主: moyunzheng
4307 2

[原创博文] %sysfunc的问题 [推广有奖]

  • 1关注
  • 2粉丝

博士生

60%

还不是VIP/贵宾

-

威望
0
论坛币
1358 个
通用积分
0.0035
学术水平
18 点
热心指数
19 点
信用等级
17 点
经验
11986 点
帖子
240
精华
0
在线时间
360 小时
注册时间
2010-12-11
最后登录
2023-9-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
目的是为了判断宏变量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.;
二维码

扫码加我 拉你入群

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

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

关键词:sysfunc Fun SFU Sys UNC 如何

沙发
moyunzheng 发表于 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

使用道具

藤椅
bobguy 发表于 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<<<

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 11:10