作者fine4313 (fine4313)
看板Statistics
标题[程式] SAS 合并资料
时间Wed May 19 20:07:32 2010
[软体程式类别]:SAS
[程式问题]:资料处理/合并
[软体熟悉度]:低~中
[问题叙述]:
我有两个档案(两个月分),
因为两个档案的公司名称与日期皆不相同
但是我只要合并两个月份同时都有的公司即可
简单举例如下:
第一个档案DATADD
Company Date
A 2001/1/1
A 2001/1/2
B 2001/1/1
B 2001/1/2
C 2001/1/1
C 2001/1/2
D 2001/1/1
D 2001/1/2
第二个档案DATA DD1
Company Date
A 2001/2/1
A 2001/2/2
D 2001/2/1
D 2001/2/2
E 2001/2/1
E 2001/2/2
希望合并後的档案(2个档案重复的公司才需合并)
Companay Date
A 2001/1/1
A 2001/1/2
A 2001/2/1
A 2001/2/2
D 2001/1/1
D 2001/1/2
D 2001/2/1
D 2001/2/2
--------------------------------------------------------------
写的CODE:
data dd2;
merge dd dd1(in=a);
by company;
if a=1 ;
run;
跑出来的结果:
A 2001/1/1
A 2001/1/2
D 2001/1/1
D 2001/1/2
其实可以再补一个指令即可合并2000/12月份,变成我希望的结果
但是想要知道"Merge"到底该怎麽用,可以一个步骤解决
此外,实际我在跑的时後,因为Date是一个月的资料
但是不知道为什麽这个code跑完会多出另一个一月份的最後一笔资料
EX: 2001/1/1
2001/1/2
.
.
.
2001/1/31
2000/12/31 <=就是这一笔@@
麻烦各位了~~感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.217.76
1F:推 wlsherica:12303篇试试看 05/19 20:30
2F:→ wlsherica:注意一下变项名称,不然会覆盖 05/19 20:31
3F:推 maumausam:merge 档x 档y (in = a) ; 应该有机会吧! 05/19 21:13
4F:→ fine4313:我用了IN的方式去跑,不过跑出来只会出现其中一个月分而 05/19 22:23
5F:→ fine4313:是因为变项名称吗? 要怎麽让他可以同时跑出两个月? 05/19 22:24
6F:推 wlsherica:婀..不太懂,请问有例子吗? 05/19 22:49
※ 编辑: fine4313 来自: 140.112.217.76 (05/19 23:12)
7F:→ fine4313:我将例子编入文章了:) 05/19 23:13
8F:推 wlsherica:这样你只会抓到第二个档案的 05/19 23:15
9F:→ wlsherica:merge dd(in=a) dd1(in=b); 试试看, 後面也要改 05/19 23:16
※ 编辑: fine4313 来自: 140.112.217.76 (05/19 23:19)
10F:→ fine4313:2个皆改的结果还是一样耶QQ 05/19 23:20
11F:推 wlsherica:哎呀我懂你想做的事了! 我想一下 05/19 23:22
12F:推 wlsherica:有没有板友能提供其他的做法呢 05/20 10:25