SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1375|回复: 3
打印 上一主题 下一主题

数据合并问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-5-25 09:33:01 | 只看该作者

数据合并问题

这样一组数据
A   B
12 1
13
14 1
15 1
21 1
22 1
23 1
24 1
31 1
32 1
41 1
42  
43 1

12、13、14、15第一位一样的视为一组
如果一组的B值都为1则合并信息,不为1置为空
结果如下:
A  B
1  
2  1
3  1
4
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-5-27 11:54:05 | 只看该作者

Re: 数据合并问题

如果a是111,该怎么取? 是1还是11?
[code:1lhp3jit]data raw;
    infile datalines missover;
    input A B;
datalines;
12 1
13
14 1
15 1
21 1
22 1
23 1
24 1
31 1
32 1
41 1
42
43 1
;
data _null_;
    if _n_=1 then do;
        declare hash h(hashexp:4,ordered:'y');
        rc=h.defineKey('a');
        rc=h.defineData('a','b');
        rc=h.defineDone();
    end;
    set raw end=last;
    a=int(a/10); _b=b;
    if h.find() ne 0 then rc=h.add();
    else if b then rc=h.replace(key:a,data:a,data:_b);
    if last then rc=h.output(dataset:'work.out');
run;
[/code:1lhp3jit]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2012-5-29 14:12:53 | 只看该作者

Re: 数据合并问题

谢谢回答,对于你的问题,我这边只有11这样的情况,111的情况应该是取11为一组
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2012-5-30 03:28:00 | 只看该作者

Re: 数据合并问题

[code:2ihmhs3k]
data x;
input A B;
cards;
12 1
13
14 1
15 1
21 1
22 1
23 1
24 1
31 1
32 1
41 1
42
43 1
;
run;

proc sql;
     create table y as
         select substr(cats(A), 1, 1) as A,
                case
              when (count(distinct B)=1) then '1'
                          else ' '
                        end as B
         from x
         group by calculated A
         ;
quit;

[/code:2ihmhs3k]
[quote="bbs412004":2ihmhs3k]这样一组数据
A   B
12 1
13
14 1
15 1
21 1
22 1
23 1
24 1
31 1
32 1
41 1
42  
43 1

12、13、14、15第一位一样的视为一组
如果一组的B值都为1则合并信息,不为1置为空
结果如下:
A  B
1  
2  1
3  1
4[/quote:2ihmhs3k]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-6 13:15 , Processed in 0.069384 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表