楼主: l1i2n3i4n5g
812 4

[程序分享] 去除字符串头尾分号的三种方法 [推广有奖]

  • 4关注
  • 13粉丝

副教授

48%

还不是VIP/贵宾

-

威望
0
论坛币
4523 个
学术水平
123 点
热心指数
147 点
信用等级
95 点
经验
13670 点
帖子
481
精华
0
在线时间
1296 小时
注册时间
2008-5-25
最后登录
2018-12-18

l1i2n3i4n5g 在职认证  发表于 2018-8-10 15:59:00 |显示全部楼层
/*去除字符串头尾分号的三种方法*/
data test;
   x=';;;中国;美国;日本;;;;;;';
   y1=Translate(strip(Translate(x,' ',';')),';',' ');   /*前提:字符串中不含空格*//*此法效率最高*/
   y2=substr(x,findc(x,';','k'),findc(x,';','bk')-findc(x,';','k')+1);
   y3=prxchange('s/^;*([^;].*[^;])(;+)?$/$1/o',1,x);
run;

关键词:效率最高 字符串

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
eijuhz + 1 精彩帖子
whymath + 1 + 1 + 1 精彩帖子

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

stata SPSS
hsubin 在职认证  发表于 2018-8-11 00:49:07 |显示全部楼层
学习了
回复

使用道具 举报

小明12345 发表于 2018-8-16 11:01:39 |显示全部楼层
学习了.
回复

使用道具 举报

albusdzx 发表于 2018-8-16 12:00:15 |显示全部楼层
螃蟹哥厉害 膜拜
回复

使用道具 举报

l1i2n3i4n5g 在职认证  发表于 2018-10-22 10:49:16 |显示全部楼层
data test;
   input id $ time $ rna $1.;
cards;
1 1 1
1 2 0
1 3 0
1 4 0
1 5 0
2 1 1
2 2 0
2 3 0
2 4 1
2 5 0
3 1 1
3 2 0
3 3 1
3 4 1
3 5 1
;
run;

data want;
   set test;
   by id;
   retain temp1;
   if first.id then do;
      call missing(temp1);
      call missing(temp2);
   end;
   if rna=0 then temp1=1;
   if temp1=1 then temp2+rna;
   if last.id then do;
      if rna=1 then type='c';
      else if temp2=0 then type='a';
      else if temp2>0 then type='b';
   end;
run;
proc print;
run;


data want;
   set test;
   by id;
   length temp1 $100;
   retain temp1;
   if first.id then call missing(temp1);
   temp1=cats(temp1,rna);
   if last.id then do;
      if prxmatch('/^1*0+\s*$/o',temp1) then type='a';
      if prxmatch('/^1*0[01]*1[01]*0\s*$/o',temp1) then type='b';
      if prxmatch('/^1*0[01]*1\s*$/o',temp1) then type='c';
   end;
run;
proc print;
run;
回复

使用道具 举报

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

GMT+8, 2018-12-18 19:52