全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5449 8
2016-08-03
楼主在去除重复数据时候发现,有的数据项其他字段信息完全相同,仅有一个 日期的字段不重复。例如:

姓名    年龄      性别      参加日期
张三     12          男        201510
张三     12          男        201509
李四      13         女        201301
李四      13         女        201402

我只想选取参加日期较大的数据保留,其余的重复项删除。即结果是:

姓名    年龄      性别      参加日期
张三     12          男        201510

李四     13          女        201402

我现在想到的方法是对姓名和参加日期降序排序,然后by 其他变量 去除重复值,不知道行不行。
不知道各位大神有没有更加简洁明了的方式实现?
二维码

扫码加我 拉你入群

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

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

全部回复
2016-8-3 12:18:41
proc sql;
create table wanted as
select * from test
group by name
having date=max(date);
quit;
二维码

扫码加我 拉你入群

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

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

2016-8-3 12:54:01
by姓名和参加日期降序排序, 然后if first.姓名。或是升序就是if last.姓名.

proc sort data=test; by name date; run;

data wanted;
  set test;
  by name date;
  if last.name;
run;
二维码

扫码加我 拉你入群

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

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

2016-8-3 13:04:07
wwang111 发表于 2016-8-3 12:18
proc sql;
create table wanted as
select * from test
好的,sql的命令用的不多,稍后试一下。多谢!
二维码

扫码加我 拉你入群

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

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

2016-8-3 13:04:30
xiaomou1 发表于 2016-8-3 12:54
by姓名和参加日期降序排序, 然后if first.姓名。或是升序就是if last.姓名.

proc sort data=test; by n ...
这个命令看起来应该能满足要求,多谢多谢!
二维码

扫码加我 拉你入群

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

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

2016-8-3 15:33:28
wwang111 发表于 2016-8-3 12:18
proc sql;
create table wanted as
select * from test
试了这个代码,对于有的参加日期是相同的月份这种情况好像不灵
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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