楼主: fallleafsean
10138 12

关于字符处理函数tranwrd的问题 [推广有奖]

  • 6关注
  • 1粉丝

已卖:6份资源

硕士生

68%

还不是VIP/贵宾

-

威望
0
论坛币
562 个
通用积分
5.1600
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
2355 点
帖子
76
精华
0
在线时间
254 小时
注册时间
2012-9-3
最后登录
2024-4-17

楼主
fallleafsean 发表于 2012-12-7 12:28:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想在宏中使用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中正常运行有没有同学碰到过这种情况的。

二维码

扫码加我 拉你入群

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

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

关键词:RAN translate sysfunc string tring abc null

回帖推荐

ziyenano 发表于3楼  查看完整内容

%let string1=%sysfunc(tranwrd(abcx\abc, \,\\)); %put &string1;

本帖被以下文库推荐

沙发
dsk2012 发表于 2012-12-7 12:45:25
看看先哦

藤椅
ziyenano 发表于 2012-12-7 13:00:46
%let string1=%sysfunc(tranwrd(abcx\abc, \,\\));   
%put &string1;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fallleafsean + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

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

报纸
ziyenano 发表于 2012-12-7 13:20:09
%let string1=%sysfunc(tranwrd(abcx%str('\')abc,'\',\\));   
%put &string1;
这么写,宏中替换的是'\'
而不是\
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fallleafsean + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

地板
playmore 发表于 2012-12-7 13:24:55
data步中要区分数值和字符,字符用单引号包围
宏中就是原样替换了,写什么就是什么,单引号就不需要了
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fallleafsean + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

7
fallleafsean 发表于 2012-12-7 13:30:41
ziyenano 发表于 2012-12-7 13:20
%let string1=%sysfunc(tranwrd(abcx%str('\')abc,'\',\\));   
%put &string1;
这么写,宏中替换的是' ...
恩,确实是这样。
我就是不明白为什么同一个函数,data步和宏中使用时,格式会不一样~data步中明明都是要加引号的

8
fallleafsean 发表于 2012-12-7 13:31:13
playmore 发表于 2012-12-7 13:24
data步中要区分数值和字符,字符用单引号包围
宏中就是原样替换了,写什么就是什么,单引号就不需要了
哦,原来是这样~谢谢可是,这个本来就是字符处理函数么,就算是data步中,用这个函数也要把数值型的转成字符型的吧~

9
playmore 发表于 2012-12-7 13:43:18
fallleafsean 发表于 2012-12-7 13:31
哦,原来是这样~谢谢可是,这个本来就是字符处理函数么,就算是data步中,用这个函数也要把数值型的转成字 ...
不会,你把数值型的变量放进去应该会报错的
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

10
fallleafsean 发表于 2012-12-7 14:14:16
playmore 发表于 2012-12-7 13:43
不会,你把数值型的变量放进去应该会报错的
恩~是这样~不过我还是不是很明白,我再去翻翻宏的原理……

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-30 05:36