SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 513|回复: 2
打印 上一主题 下一主题

现有一题,征求最佳解决方案

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2004-9-6 10:56:21 | 只看该作者

现有一题,征求最佳解决方案

data cb;
input p $ a b;
cards;
p1 26 232
p2 45 999
p3 56 778
;
run;

data lp;
input p $ c d;
cards;
p1 2 3
p2 5 8
p2 9 3
p3 8 9
p3 3 4
;
run;

现有cb 、 lp两块数据,以p为关键字段,其中cb的p是唯一的,而lp中的p是不唯一的,现要以cb库为基准库,以p为关键字段对cb lp两个库进行匹配。
要求如下:lp中的每一条记录必须都匹配进去,不能有遗漏;
          要求在匹配完之后的数据库中增加一个字段,标识相同p的观测有几条。


匹配库格式如下:

  p         a                b          c         d     flag
  p1        26              232         2         3     1
  p2        45              999         5         8     2
  p2        45              999         9         3     2  
  p3        56              778         8         9     2
  p3        56              778         3         4     2
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2004-9-6 14:08:29 | 只看该作者

test

[code:c3d4d]proc sql;
create table tem as
  select *
  from cb,lp
  where cb.p=lp.p;
quit;[/code:c3d4d]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2004-9-6 17:00:40 | 只看该作者

flag字段如何产生

gbt提供了一种比较好的解决方案,还有一个问题没有解决:要求在匹配完之后的数据库中增加一个字段flag,用以标识相同p的观测有几条。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-1-11 02:30 , Processed in 2.727608 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表