全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1902 11
2015-12-14
悬赏 300 个论坛币 已解决
如表格描述   顶顶顶顶顶顶顶顶顶大大大

a.xlsx

大小:10.11 KB

 马上下载

最佳答案

teqel 查看完整内容

看看这个
二维码

扫码加我 拉你入群

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

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

全部回复
2015-12-14 20:03:44
看看这个
复制代码
二维码

扫码加我 拉你入群

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

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

2015-12-15 08:49:56
如果数据量不太大,试试这个:
proc sql;
   create table wanted as
    select * from have
        where name not in
     (select distinct l.name
         from have as l, have as r
         where l.name=r.name and l.com=r.com and l.date ne r.date and intck("Year",l.date,r.date,"c")=0);
quit;
二维码

扫码加我 拉你入群

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

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

2015-12-15 23:57:10
假设原始数据集为aproc sort data=a;
by name date;
run;

data b(drop=com date);
set a;
by name date;
if first.name then do;
comfirst=com;
datefirst=date;
output;
end;
run;
这样数据集b中就包含了每个人的第一个com

data c(keep=name);
merge a(in=ina) b(in=inb);
by name;
if comfirst=com  and date^=datefirst and date-datefirst<365 then output;
run;
数据集c中保留的是要删去的人的名字

data d;
merge a(in=ina) c(in=inc);
by name;
if ina and not inc;
run;

楼上的好像有个问题, 就是某人中间有两次公司重复了也会被删除.
二维码

扫码加我 拉你入群

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

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

2015-12-16 01:02:26
楼上这个有相同的问题。而且也不总是看第一个公司
二维码

扫码加我 拉你入群

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

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

2015-12-16 09:18:43
teqel 发表于 2015-12-16 01:48
看看这个
谢谢   请问你这个程序思路  是不是  确保    假如有两个同样的com的间隔着其他的com出现,那么这两个com出现的时间不能够小于365 ,否则删除
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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