楼主: sascylindrical
3691 3

[讨论]如何用Proc Format实现数据集的合并。 [推广有奖]

  • 0关注
  • 1粉丝

已卖:1863份资源

本科生

65%

还不是VIP/贵宾

-

威望
0
论坛币
21298 个
通用积分
1.5700
学术水平
12 点
热心指数
13 点
信用等级
9 点
经验
518 点
帖子
52
精华
0
在线时间
123 小时
注册时间
2009-4-1
最后登录
2009-10-20

楼主
sascylindrical 发表于 2009-7-3 06:39:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在一篇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。这样说来,是不是很不严谨呢?很想知道大家怎么看这个问题。望不吝赐教,谢谢。

Assessing.SAS.Skill.Level.during.the.Interviewing.Process_133-29.pdf (186.77 KB)
二维码

扫码加我 拉你入群

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

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

关键词:format FORMA form ORM 如何用 start 如何

已有 1 人评分学术水平 收起 理由
论坛数据分析 + 2 鼓励积极发帖讨论

总评分: 学术水平 + 2   查看全部评分

沙发
sascylindrical 发表于 2009-7-9 00:49:28
怎么没人讨论这个技术问题呢?其实还蛮有趣的...

藤椅
peijiamei 发表于 2010-7-21 14:42:03
学习了
我的微博:http://t.sina.com.cn/1087192374
欢迎互相加关注!

板凳
soporaeternus 发表于 2010-7-21 15:03:30
例子就是format的一个表链接
个人感觉更多应用在和代码表的链接上,据说速度是最快的,对比join或是merge
Let them be hard, but never unjust

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 23:46