作者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
推 wlsherica:12303篇試試看 05/19 20:30
→ wlsherica:注意一下變項名稱,不然會覆蓋 05/19 20:31
推 maumausam:merge 檔x 檔y (in = a) ; 應該有機會吧! 05/19 21:13
→ fine4313:我用了IN的方式去跑,不過跑出來只會出現其中一個月分而 05/19 22:23
→ fine4313:是因為變項名稱嗎? 要怎麼讓他可以同時跑出兩個月? 05/19 22:24
推 wlsherica:婀..不太懂,請問有例子嗎? 05/19 22:49
※ 編輯: fine4313 來自: 140.112.217.76 (05/19 23:12)
→ fine4313:我將例子編入文章了:) 05/19 23:13
推 wlsherica:這樣妳只會抓到第二個檔案的 05/19 23:15
→ wlsherica:merge dd(in=a) dd1(in=b); 試試看, 後面也要改 05/19 23:16
※ 編輯: fine4313 來自: 140.112.217.76 (05/19 23:19)
→ fine4313:2個皆改的結果還是一樣耶QQ 05/19 23:20
推 wlsherica:哎呀我懂你想做的事了! 我想一下 05/19 23:22
推 wlsherica:有沒有板友能提供其他的做法呢 05/20 10:25