楼主: 凡尘梦1990
2554 2

[问答] [SAS]字符查找和拼接 [推广有奖]

  • 5关注
  • 2粉丝

讲师

46%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
3.0013
学术水平
5 点
热心指数
7 点
信用等级
0 点
经验
430 点
帖子
187
精华
0
在线时间
836 小时
注册时间
2012-10-9
最后登录
2024-2-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
程序如下所示,其中字符串s='浙江恒逸物流100%股权,宁波恒逸物流100%股权'; 我想从字符串中获取两个百分数并拼接在一起(中间用空格隔开)。我写的程序如下所示,其中输出的y是正确的,但不知道为什么输出的x 不是我要的两个变量的拼接,请问为什么?求指导,不胜感激!

%let z = substr(s,max(1,pos-8),min(9,length(s)) );

data x;
        s='浙江恒逸物流100%股权,宁波恒逸物流100%股权';
        pos=0;
        x=" ";
        do i=1 to 3;
                pos= find(s, '%', pos+1);
                put pos;
                if pos ne . ;
                        y=compress(&z, '0123456789.%-','k');
                        put y;
                        x=x||","||y;
                        put x;
        end;

run;

二维码

扫码加我 拉你入群

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

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

关键词:compress SUBSTR length Press comp

回帖推荐

孤单的我们 发表于2楼  查看完整内容

X的长度没有实现定义。X=" "第一次出现时,变量X的长度定义为1,于是后面就发生了截断。 Y的结果正确是因为compress函数产生的变量长度有默认值。 在9.4中,COMPRESS(source ) 的默认长度等于source的长度
就这样吧。
X的长度没有实现定义。X=" "第一次出现时,变量X的长度定义为1,于是后面就发生了截断。

Y的结果正确是因为compress函数产生的变量长度有默认值。

在9.4中,COMPRESS(source <, characters> <, modifier(s)>) 的默认长度等于source的长度

使用道具

藤椅
凡尘梦1990 学生认证  发表于 2019-5-5 19:47:44 |只看作者 |坛友微信交流群
孤单的我们 发表于 2019-5-5 13:34
X的长度没有实现定义。X=" "第一次出现时,变量X的长度定义为1,于是后面就发生了截断。

Y的结果正确是因 ...
太牛了,你的回答是对的。事实上后来 我发现这个问题了,我在x 出现之前定义了 length x $20. 就搞定了。谢谢你的解答。

使用道具

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

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

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

GMT+8, 2024-4-19 19:03