楼主: WenX_10
999 2

[SAS EM] SAS分列及计数 [推广有奖]

  • 0关注
  • 0粉丝

高中生

87%

还不是VIP/贵宾

-

威望
0
论坛币
1384 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
325 点
帖子
13
精华
0
在线时间
43 小时
注册时间
2018-8-3
最后登录
2022-4-7

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
a

b

c

1101

1101/1102/1103

1

110

110/111

1

121

121

1

111

110/111/112/113

2



求助,如上面展示的表格,已知a列和b列,b列有固定分隔符但是长度不固定,想求c列,即a字符串在b中以分隔符计的位置数值,小白不知道该怎么写代码,感激不尽!
二维码

扫码加我 拉你入群

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

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

关键词:感激不尽 不知道 ABC 字符串

回帖推荐

whymath 发表于2楼  查看完整内容

最简单的思想是,按分隔符切分变量b,将切分的块依次与变量a比较,相等则将切分次数赋值给变量c。代码示例如下: 结果为:
沙发
whymath 发表于 2020-3-12 18:44:43 |只看作者 |坛友微信交流群
最简单的思想是,按分隔符切分变量b,将切分的块依次与变量a比较,相等则将切分次数赋值给变量c。代码示例如下:
  1. data _null_;
  2.         input a $ b  $20.;
  3.         do i = 1 to max(count(b,'/'),1) until (c);
  4.                 if a = scan(b,i,'/') then c = i;
  5.         end;
  6.         put (a b c) (=);
  7.         cards;
  8.         1101 1101/1102/1103
  9.         110 110/111
  10.         121 121
  11.         111 110/111/112/113
  12. ;
  13. run;
复制代码

结果为:
a=1101 b=1101/1102/1103 c=1
a=110 b=110/111 c=1
a=121 b=121 c=1
a=111 b=110/111/112/113 c=2

使用道具

藤椅
WenX_10 发表于 2020-3-13 11:40:34 |只看作者 |坛友微信交流群
whymath 发表于 2020-3-12 18:44
最简单的思想是,按分隔符切分变量b,将切分的块依次与变量a比较,相等则将切分次数赋值给变量c。代码示例如 ...
完美解决,谢谢大神

使用道具

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

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

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

GMT+8, 2024-4-28 04:38