楼主: 神月德
1775 7

sas求助大神帮忙 [推广有奖]

  • 1关注
  • 0粉丝

本科生

67%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
837 点
帖子
52
精华
0
在线时间
99 小时
注册时间
2015-9-17
最后登录
2018-9-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
A                                       B
2,2,3,3,4               2,3,4
2,3,3,4,5,5          2,3,4,5
请问如何实现由A得到B,去掉记录里重复的数据,用sas如何实现

二维码

扫码加我 拉你入群

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

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

关键词:SAS求助 求助大神 如何实现 记录 如何

回帖推荐

Tigflanker 发表于6楼  查看完整内容

一切从简,正则推荐实在没办法了再写

yongyitian 发表于4楼  查看完整内容

删除观测中的重复字符串 Remove duplicate string in an observation
沙发
teqel 发表于 2015-12-12 06:41:04 来自手机 |只看作者 |坛友微信交流群
看看有没有会正则表达式的大神

使用道具

藤椅
lzxlisu 发表于 2015-12-12 23:32:07 |只看作者 |坛友微信交流群
data tmp;
input x $;
cards;
11223
12345
15522
122
3333
;
run;
proc sql noprint;
        select max(length(x)) into:len from tmp;
quit;

%macro tt(max=);
data tmp2;
        set tmp;
        new=substr(x,1,1);
        x1=substr(x,1,1);
        %let amt=x;
        flag=0;
        %do i=2 %to &max.;
                x&i.=substr(x,&i.,1);
                %do j=1 %to %eval(&i.-1);
                        if x&i.=x&j. then flag+1;
                %end;
                if flag=0 then new=compress(new||x&i.);
                else flag=0;
        %end;
        keep x new;
run;
%mend;

%tt(max=&len.);

使用道具

板凳
yongyitian 发表于 2015-12-13 06:08:50 |只看作者 |坛友微信交流群
删除观测中的重复字符串
Remove duplicate string in an observation

  1. data have;
  2.    a ="2, 2, 3, 3, 4       "; output;
  3.    a ="2, 3, 3, 4, 5, 5"; output;
  4.    a ="3, 6, 8, 8, 9, 0"; output;
  5. run;

  6. data want;
  7.    set have;
  8.    length b $30.;
  9.    b=scan(a,1);
  10.    do i = 1 to countw(a);
  11.      if ^find(b, scan(a,i)) then b=cats(b, ", ", scan(a,i));
  12.    end;
  13.    drop i;
  14. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Tigflanker + 4 + 3 + 2 观点有启发

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

使用道具

报纸
Tigflanker 发表于 2015-12-13 17:21:18 |只看作者 |坛友微信交流群
正则表达式能不用且不用,写不好容易出纰漏

推荐楼上仁兄的简易风,不容易出错,也是一目了然;推荐用indexw替代find

使用道具

地板
Tigflanker 发表于 2015-12-13 17:30:36 |只看作者 |坛友微信交流群
  1. data want;
  2.    set have;
  3.    
  4.    prx = prxparse('s/([^,]+)\s*(,\s*\1\s*)+/\1/');
  5.    b = prxchange(prx,-1,a);
  6. run;
复制代码
一切从简,正则推荐实在没办法了再写

使用道具

7
神月德 发表于 2015-12-13 22:40:05 |只看作者 |坛友微信交流群
Tigflanker 发表于 2015-12-13 17:30
一切从简,正则推荐实在没办法了再写
谢谢大神了

使用道具

8
神月德 发表于 2015-12-13 22:40:37 |只看作者 |坛友微信交流群
yongyitian 发表于 2015-12-13 06:08
删除观测中的重复字符串
Remove duplicate string in an observation
真心谢谢了,你这个比较好懂,嘿嘿

使用道具

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

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

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

GMT+8, 2024-4-25 05:59