全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
962 4
2011-10-28
求助:知道某变量的一个属性,想填补该变量空着的该属性。
举例如下:
原始表为:assn                 cpc
清华大学         北京
清华大学
东北大学               
东北大学         辽宁
李三     
李三
王二
王二小            上海
王二小

想把相同assn的cpc全部填补上,其他的就空着,处理后格式为:
assn                 cpc
清华大学         北京
清华大学         北京
东北大学         辽宁      
东北大学         辽宁
李三     
李三
王二
王二小            上海
王二小            上海
————————————————————————————
注:之前求助,有位大侠帮忙写了个程序,但是运行后发现把所有assn的cpc都填补上了,就是把“李三”和“王二”也补上了;
程序如下:
proc sort data=dianzi.p1;by assn;run;
proc sort data=dianzi.p1;   
  by assn descending cpc;
run;
data dianzi.p2;
   do until(last.assn);
     set dianzi.p1;
     by assn;
      length cpc0 $ 50;
      retain cpc0 "";
      if cpc^=" " then cpc0=cpc;
      else cpc=cpc0;
          output;
        end;
          drop cpc0;
run;
__________________________


我的SAS刚开始学习,不知道如何对这个程序修改,哪位大侠帮帮忙,把程序完善一下吧。
多谢多谢了!!




二维码

扫码加我 拉你入群

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

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

全部回复
2011-10-28 13:10:14
data a;
input a b;
cards;
1 2
1 .
2 .
2 1
2 1
;

run;

proc sort data=a;
by a descending b;
run;

data b;
set a;
by a;
retain c .;
if first.a then c=b;
drop b;
rename c=b;
run;

二维码

扫码加我 拉你入群

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

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

2011-10-28 13:28:28
honghejing 发表于 2011-10-28 13:10
data a;
input a b;
cards;
谢谢大侠了,程序很好用!!祝学习工作顺利!
二维码

扫码加我 拉你入群

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

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

2011-10-28 14:02:47
proc sort data=dianzi.p1 out=dianzi.p2;                                                                                                               
  by assn descending cpc;                                                                                                               
run;                                                                                                                                    
data dianzi.p3;                                                                                                                                
     set dianzi.p2;                                                                                                                           
       by assn;                                                                                                                        
       length cpc0 $50;                                                                                                                 
      retain cpc0 "";                                                                                                                  
      if first.assn then cpc0=cpc;                                                                                                      
          drop cpc;                                                                                                                     
              rename cpc0=cpc;                                                                                                         
run;                                                                                                                                    
proc print data=p3;                                                                                                                     
run;      
二维码

扫码加我 拉你入群

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

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

2011-10-30 11:18:39
我也试了下,你可以参照《SAS编程与数据挖掘商业案例》P69
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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