全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1165 6
2013-08-12
数据是这样的:
f1       f2
aa      A
aa      H
aa      
aa      
aa      BH
bb     AB
bb     B
bb     

f1取aa或bb的观测数都不是确定的,f2可为A、B、H、F字符中的一个或几个的组合或空值。
现在我只想得到两个观测,f1分别取aa、bb,对应的f2取各观测f2的并集,如aa的f2应取ABH,bb的f2应取AB.
希望大家能帮我想出个简单有效的办法,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-8-12 15:46:13
期盼高人解答
二维码

扫码加我 拉你入群

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

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

2013-8-12 15:49:29
复制代码
二维码

扫码加我 拉你入群

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

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

2013-8-12 17:20:00
可~乐 发表于 2013-8-12 15:49
多谢!关键在于output 、nodupkey和retain啊!有没有更简单一些的方法?
二维码

扫码加我 拉你入群

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

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

2013-8-12 20:13:40
复制代码
二维码

扫码加我 拉你入群

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

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

2013-8-13 11:06:03
Hope it helps.

data tmp;
length f1 $2 f2 $10;
infile cards truncover;
input f1       f2;
cards;
aa      A
aa      H
aa      
aa      
aa      BH
bb     AB
bb     B
bb  
;

data needed;
  length s t $300;
  retain s ' ';

  set tmp;
  by f1;
  if first.f1 then s=' ';
  s=catt(s,f2);
  if last.f1 then do
    t=char(s,1);
    do i=2 to length(s);
            char1=char(s,i);
            if find(t, char1) then ;
                else t=catt(t,char1);
        end;
        output;
  end;

  
  keep f1 t;
  rename t=f2;
  run;

  proc print;run;

  
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群