全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9961 12
2012-12-07
想在宏中使用tranwrd函数,在data步中函数运行成功,但在macro中结果显示不正确
data步:
data _null_;
   string1=tranwrd('abcx\abc', '\', '\\');
   put string1=;
run;
结果为:abcx\\abc。

macro中:
   %let string1=%sysfunc(tranwrd('abcx\abc', '\','\\'));   %put &string1;结果为:abcx\abc。
无法正确运行,是否tranwrd不能用%sysfunc?尝试过translate函数可以在%sysfunc中正常运行有没有同学碰到过这种情况的。

二维码

扫码加我 拉你入群

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

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

全部回复
2012-12-7 12:45:25
看看先哦
二维码

扫码加我 拉你入群

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

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

2012-12-7 13:00:46
%let string1=%sysfunc(tranwrd(abcx\abc, \,\\));   
%put &string1;
二维码

扫码加我 拉你入群

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

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

2012-12-7 13:13:30
ziyenano 发表于 2012-12-7 13:00
%let string1=%sysfunc(tranwrd(abcx\abc, \,\\));   
%put &string1;
果然就行了~神奇啊~这是什么原理啊~
感谢ziyenano同学~帮助过我好几次了~哈哈~万分感谢
二维码

扫码加我 拉你入群

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

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

2012-12-7 13:20:09
%let string1=%sysfunc(tranwrd(abcx%str('\')abc,'\',\\));   
%put &string1;
这么写,宏中替换的是'\'
而不是\
二维码

扫码加我 拉你入群

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

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

2012-12-7 13:24:55
data步中要区分数值和字符,字符用单引号包围
宏中就是原样替换了,写什么就是什么,单引号就不需要了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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