全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1727 5
2014-02-10
问题:1.例如对于某客户信息数据集,同一个ID的客户的APRD只可能是0或1,可能有多个0,至多一个1;
我希望对同一ID的客户仅保留一条观测,若有1则保存1,若只有多个0,则删除重复仅保存一条(这里隐含假定所有APRD取0的观测完全相同),注意,其他所有变量也要保存;
样例如下:
[td]
申请人身份证号  aprv
110108196302052017 0
110223197508121077 0
110223197508121077 1
120105197007012415 0
120105197007012415 0
120105197007012415 0
120105197007012415 0
13010319840608302X 0
13010319840608302X 0
13010319840608302X 0

请问如何实现?




二维码

扫码加我 拉你入群

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

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

全部回复
2014-2-10 16:49:45
sum(aprv)>0 as aprv ...group by id
二维码

扫码加我 拉你入群

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

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

2014-2-10 17:13:35
soporaeternus 发表于 2014-2-10 16:49
sum(aprv)>0 as aprv ...group by id
我的意思是基于aprv挑选,但需要保存其他所有变量
二维码

扫码加我 拉你入群

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

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

2014-2-10 17:14:43
soporaeternus 发表于 2014-2-10 16:49
sum(aprv)>0 as aprv ...group by id
貌似对于多个0的ID组无法挑选,我这个问题好像问的不对
二维码

扫码加我 拉你入群

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

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

2014-2-10 19:45:41
不知能排序吗,先id升序aprv降序,再按id分组去第一个,只考虑这两个变量
好笨的方法
二维码

扫码加我 拉你入群

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

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

2014-2-11 09:47:03
先按APRV倒序排列,这样如果有1,则1一定在该组第一行
proc sort data=have;
by ID APRV descending;
run;

然后每个ID组就保留第一行数据就行了

-------------------------------------------------------------

发完贴发现和ls的办法一样,呵呵
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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