楼主: marongkang
997 4

[问答] 求助:知道某变量的一个属性,想填补该变量空着的该属性。 [推广有奖]

  • 1关注
  • 0粉丝

已卖:59份资源

本科生

36%

还不是VIP/贵宾

-

威望
0
论坛币
1204 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1125 点
帖子
61
精华
0
在线时间
113 小时
注册时间
2007-8-23
最后登录
2022-10-20

楼主
marongkang 发表于 2011-10-28 11:53:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助:知道某变量的一个属性,想填补该变量空着的该属性。
举例如下:
原始表为: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刚开始学习,不知道如何对这个程序修改,哪位大侠帮帮忙,把程序完善一下吧。
多谢多谢了!!




二维码

扫码加我 拉你入群

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

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

关键词:output ending length RETAIN until 清华大学 东北大学 王二小 北京 上海

沙发
honghejing 发表于 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;

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
marongkang + 1 + 1 + 1 热心帮助其他会员

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

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

板凳
gaotao0727 发表于 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;      
衣带渐宽终不悔,为伊消得人憔悴~~

报纸
ywb0314 发表于 2011-10-30 11:18:39
我也试了下,你可以参照《SAS编程与数据挖掘商业案例》P69

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 23:44