全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学
3725 3
2009-07-03
在一篇Paper(详见附件)里面看到一种办法,用于合并两个有公共变量的数据集。题目和解法如下:

题目:
合并数据集A和B,新表中包含同时出现在A和B里面并且ordernumber相等的obs,A和B的结构如下

Dataset A
ordernumber
firstname
lastname

Dataset B
ordernumber
product
purchase date

解法(by Proc Format):
data b; set b;
start = ordernumber;
label = '*';
fmtname = '$key';
run;

proc sort data=b nodupkey; by start;
run;

proc format cntlin=b;
run;

data all; set a;
if put(ordernumber,$key.) = '*';
run;

这个解法我大致看懂了,它适用于一个表比较小(set b)而另一个表大(set a)而且不方便排序的场合;
可是在我看来,这个解法只能说是从大表(set a)中提取小表(set b)中ordernumber出现的obs,它并没有实现合并,也就是说dataset all里面并没有包括dataset b里除了ordernumber之外的变量;对照该论文给出的其它三种解法,那三种解法都是实在的Merge Code。这样说来,是不是很不严谨呢?很想知道大家怎么看这个问题。望不吝赐教,谢谢。

二维码

扫码加我 拉你入群

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

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

全部回复
2009-7-9 00:49:28
怎么没人讨论这个技术问题呢?其实还蛮有趣的...
二维码

扫码加我 拉你入群

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

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

2010-7-21 14:42:03
学习了
二维码

扫码加我 拉你入群

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

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

2010-7-21 15:03:30
例子就是format的一个表链接
个人感觉更多应用在和代码表的链接上,据说速度是最快的,对比join或是merge
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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