请选择 进入手机版 | 继续访问电脑版
楼主: liuliuqiu
1154 2

sas程序请教 [推广有奖]

  • 6关注
  • 2粉丝

副教授

62%

还不是VIP/贵宾

-

威望
0
论坛币
2340 个
通用积分
8.9561
学术水平
3 点
热心指数
5 点
信用等级
5 点
经验
14393 点
帖子
429
精华
0
在线时间
1113 小时
注册时间
2009-3-24
最后登录
2024-2-29

liuliuqiu 发表于 2014-10-28 11:00:22 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
本文要用SAS处理一组数据,有个程序不会写:
       数据中还有三个变量 code name year.code代表个体编号,name代表个体名称,每个个体都对应唯一的编号,year代表时间(1997-2009),问题是原始数据中有很多个体,在一些年份的编号缺失,例如个体:王二,编号为345,但是在数据中只有某几个年份显示编号,如何利用程序,将其他年份的编号补齐呢?
       举个例子,更清晰。
       code       name          year
       345         王二            1997
                     王二             1998
                      王二            1999
        345          王二           2000
                      王二            2001
         ....           ....            ....
         123        刘三           1997
                      刘三            1998
                      刘三             1999
        ...             ...              ....
二维码

扫码加我 拉你入群

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

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

关键词:sas程序 code name year 原始数据 程序 如何

wwang111 发表于 2014-10-28 11:11:53 |显示全部楼层 |坛友微信交流群
  1. data test;
  2. input  code name $ year;
  3. cards;
  4. 345 aaa 2005
  5. .   aaa 2006
  6. .   aaa 2007
  7. 346 bbb 2007
  8. .   bbb 2008
  9. .   bbb 2009
  10. ;

  11. proc sql;
  12. create table cdfmt as
  13. select distinct name as start,code as label, "$cdfmt" as fmtname from test
  14. where ^missing(code);
  15. quit;

  16. proc format cntlin=cdfmt;
  17. run;

  18. data wanted;
  19. set test(drop=code);
  20. code=input(put(name,$cdfmt.),best.);
  21. run;
复制代码

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

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

使用道具

huangpengfei 发表于 2014-11-12 20:04:50 |显示全部楼层 |坛友微信交流群
proc sort data=test;
        by name descending code;
run;

data want;
        set test;
        by name descending code;
        retain code1;
        if first.name then code1=code;
        if code > . then code1=code1;
        code=code1;
        drop code1;

run;

proc sort data=want;
        by name year;
run;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
liuliuqiu + 2 + 2 + 2 + 2 热心帮助其他会员

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

使用道具

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

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

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

GMT+8, 2024-4-16 22:09