楼主: 雨中蝴蝶
894 2

[原创博文] 时间变量询问 [推广有奖]

  • 1关注
  • 1粉丝

大专生

80%

还不是VIP/贵宾

-

威望
0
论坛币
27 个
通用积分
0
学术水平
3 点
热心指数
5 点
信用等级
4 点
经验
616 点
帖子
42
精华
0
在线时间
31 小时
注册时间
2011-9-15
最后登录
2020-1-16

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
询问:在每种代码里,CEO名字是否连续4年重复出现,如果是则为1,不是则为0
         SAS怎么实现?
   注意:时间间隔在文件里有很多是不同的。
  求高手帮助。
sas.JPG
二维码

扫码加我 拉你入群

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

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

关键词:时间变量 时间间隔 CEO 求高手 iPhone 美女 苹果

沙发
nomad5 发表于 2012-9-4 12:28:01 |只看作者 |坛友微信交流群
data list1;
    set raw;
    year=input(scan(date,1,'-'), best.); /*提取日期中的年,转化为数值型*/
run;

proc sort data=list1;
    by id name year;    /*按照代码,人名,年 排序*/
run;

data list2;
    set list2;
    by id name year;

    diff_year=dif(year);  /*计算上下两个年份的差,判断两个年份是否是连续的*/

    if diff_year^=1 or first.name then flg+1;   /*如果差不等于1,表示这一年与上一年不是连续,需要重新标记。每个人开始的时候也重新标记。*/
    retain flg;
run;

proc sql;
    create table final as
      select distinct id,date,name
                     ,count(flg) as count   /*根据标记的个数,判断连续了几年*/
                     ,min(date) as min      /*连续的开始日期*/
                     ,max(date) as max      /*连续的结束日期*/
        from list2
        group by id,name,flg
    ;
quit;

使用道具

藤椅
雨中蝴蝶 发表于 2012-9-4 17:33:32 |只看作者 |坛友微信交流群
非常感谢,很清晰

使用道具

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

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

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

GMT+8, 2024-4-28 18:41