[程式] SAS合併資料的問題

看板Statistics作者 (藍門)時間10年前 (2015/03/10 12:48), 編輯推噓2(2013)
留言15則, 4人參與, 最新討論串1/1
------------------------------------------------------------------------ [軟體程式類別]: SAS [程式問題]: 合併資料 [軟體熟悉度]: 新手(不到1個月) [問題敘述]: 大家好 我想要合併兩個EXCEL檔案 這兩個檔案都有date lacation grade 三個項目 其中aa有sales bb則是price 我有辦法利用那三個共同的項目去篩選出同一天 同一地點 同個grade 的sales跟price嗎 比如說 aa檔是 Location Date Grade Sales 118 7/15 Diesel 2000.00 113 7/15 Premium 100.00 9 7/15 Diesel 300.00 6 7/16 Premium 105.00 bb檔是 Location Date Grade Price 113 7/15 Premium 2.50 118 7/15 Diesel 2.78 6 7/16 Premium 2.61 12 7/16 Unleaded 2.30 然後我要的結果大概是 Location Date Grade Sales Price 118 7/15 Diesel 2000.00 2.78 113 7/15 Premium 100.00 2.50 9 7/15 Diesel 300.00 N/A 6 7/16 Premium 105.00 2.61 12 7/16 Unleaded N/A 2.30 因為兩個檔案都約有20000多筆資料 分別有缺漏 我用了merge也沒辦法 想知道SAS有沒有這種code能辦到 [程式範例]: 我現在是用這樣 proc import datafile="C:\Users\user\Desktop\FBS.csv" out=aa; run; proc import datafile="C:\Users\user\Desktop\FB.csv" out=bb; run; proc sort data=aa; by Date ; run; proc sort data=bb; by Date; run; data cc; merge bb aa(rename=(Grade=gra1 Location=loct1)); by Date Location; proc print; run 但是因為資料量不同好像根本無法這樣merge 請問有高手知道該怎麼辦嗎 謝謝 ----------------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 75.111.129.180 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1425962907.A.586.html

03/10 15:00, , 1F
兩檔案分別創造一新變數 id=compress(location||date||g
03/10 15:00, 1F

03/10 15:00, , 2F
rade),然後依新變數merge檔案?
03/10 15:00, 2F

03/10 20:12, , 3F
proc sql;
03/10 20:12, 3F

03/10 20:13, , 4F
create table AABB as select a.*,b.*
03/10 20:13, 4F

03/10 20:13, , 5F
from AA a left join BB b
03/10 20:13, 5F

03/10 20:13, , 6F
on a.date=b.date and a.location=b.location
03/10 20:13, 6F

03/10 20:13, , 7F
and a.grade=b.grade
03/10 20:13, 7F

03/10 20:14, , 8F
order by Date;
03/10 20:14, 8F

03/10 20:14, , 9F
quit
03/10 20:14, 9F

03/10 20:15, , 10F
太多筆數 要測試 可以縮小筆數再測試 例如~~
03/10 20:15, 10F

03/10 20:16, , 11F
data aa; set aa; if _n_<=3;run; 抓出三筆
03/10 20:16, 11F

03/10 22:23, , 12F
謝謝 我來試試看
03/10 22:23, 12F

03/12 13:36, , 13F
印象中用merge by,都要先sort,你location也要sort
03/12 13:36, 13F

03/12 13:41, , 14F
如果像你舉例的location在兩個檔裡面數目不一樣
03/12 13:41, 14F

03/12 13:42, , 15F
這樣合併會有遺漏吧?要先有一個所有date跟location的檔
03/12 13:42, 15F
文章代碼(AID): #1K_dURM6 (Statistics)