[程式] SAS 合併資料

看板Statistics作者 (fine4313)時間15年前 (2010/05/19 20:07), 編輯推噓6(606)
留言12則, 3人參與, 最新討論串1/6 (看更多)
[軟體程式類別]: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

05/19 20:30, , 1F
12303篇試試看
05/19 20:30, 1F

05/19 20:31, , 2F
注意一下變項名稱,不然會覆蓋
05/19 20:31, 2F

05/19 21:13, , 3F
merge 檔x 檔y (in = a) ; 應該有機會吧!
05/19 21:13, 3F

05/19 22:23, , 4F
我用了IN的方式去跑,不過跑出來只會出現其中一個月分而
05/19 22:23, 4F

05/19 22:24, , 5F
是因為變項名稱嗎? 要怎麼讓他可以同時跑出兩個月?
05/19 22:24, 5F

05/19 22:49, , 6F
婀..不太懂,請問有例子嗎?
05/19 22:49, 6F
※ 編輯: fine4313 來自: 140.112.217.76 (05/19 23:12)

05/19 23:13, , 7F
我將例子編入文章了:)
05/19 23:13, 7F

05/19 23:15, , 8F
這樣妳只會抓到第二個檔案的
05/19 23:15, 8F

05/19 23:16, , 9F
merge dd(in=a) dd1(in=b); 試試看, 後面也要改
05/19 23:16, 9F
※ 編輯: fine4313 來自: 140.112.217.76 (05/19 23:19)

05/19 23:20, , 10F
2個皆改的結果還是一樣耶QQ
05/19 23:20, 10F

05/19 23:22, , 11F
哎呀我懂你想做的事了! 我想一下
05/19 23:22, 11F

05/20 10:25, , 12F
有沒有板友能提供其他的做法呢
05/20 10:25, 12F
文章代碼(AID): #1ByzI6By (Statistics)
文章代碼(AID): #1ByzI6By (Statistics)